國立屏東大學 資訊工程學系 程式設計(二)
turnin code c.hw14
due date: May 6, 11:30AM
設計一個C語言程式名為stringBox.c,可進行10個20個字元以內的字串操作。在你的程式中,必須宣告一個指標永遠指向目前字元數最長的字串,如果一樣時,則列出最後加入的字串。程式執行時,可接受使用者命令進行相關操作,包含:
程式執行結果參考:
[9:19 user@ws hw14] ./a.out [command] l -empty- [command] m -null- [command] q -bye- [9:19 user@ws hw14] ./a.out [command] l -empty- [command] i string=? Happy [command] l Happy-->end [command] i string=? birthday [command] i string=? to [command] i string=? you [command] l Happy-->birthday-->to-->you-->end [command] m The string with maximum length is birthday. [command] i string=? abcdefghijk [command] m The string with maximum length is abcdefghijk. [command] i string=? aaa [command] i string=? bbb [command] i string=? ccc [command] i string=? ddd [command] i string=? eee [command] l Happy-->birthday-->to-->you-->abcdefghijk-->aaa-->bbb-->ccc-->ddd-->eee-->end [command] i out of space! [command] m The string with maximum length is abcdefghijk. [command] d which one? 5 [command] l Happy-->birthday-->to-->you-->aaa-->bbb-->ccc-->ddd-->eee-->end [command] m The string with maximum length is birthday. [command] i string=? fff [command] l Happy-->birthday-->to-->you-->aaa-->bbb-->ccc-->ddd-->eee-->fff-->end [command] d which one? 8 [command] l Happy-->birthday-->to-->you-->aaa-->bbb-->ccc-->eee-->fff-->end [command] d which one? 8 [command] d which one? 8 [command] l Happy-->birthday-->to-->you-->aaa-->bbb-->ccc-->end [command] d which one? 8 out of range! [command] e [command] l -empty- [command] q -bye- [9:19 user@ws hw12]
可參考4/29日上課講解
#include <stdio.h> #include <stdlib.h> int main() { int quit=0; int box[10]; int temp; int index=0; char cmd; int *max; while(!quit) { printf("[command]"); scanf(" %c", &cmd); switch(cmd) { case 'l': if(index==0) { printf("-empty-\n"); } else { for(temp=0;temp<index;temp++) { printf("%d-->",box[temp]); } printf("end\n"); } break; case 'i': if(index==10) { printf("out of space!\n"); } else { printf("value=? "); scanf(" %d", &temp); box[index]=temp; if(index==0) { max=&box[index]; } else { if(box[index]> *max) { max=&box[index]; } } index++; } break; case 'm' : if(index==0) printf("-null-\n"); else printf("The maximum value is %d.\n", *max); break; case 'q' : quit=1; printf("-bye-\n"); break; } } }