字符串輸入:
gets()
char name[20];
printf("Hi,What's your name?\n");
gets(name);
printf("Nice name %s",name);
它使用一個地址把字符串賦予name。
char name[20];
char *p;
printf("\nEn,What's your name?\n");
p=gets(name);
printf("%s?Oh,Nice name %s\n",name,p);
get()的代碼使用return 關鍵字返回字符串的地址,程序把這個地址分配給指針p。
fgets()
fgets()是為文件I/O而設計的,處理鍵盤輸入不是特別方便。
printf("\nHi,What's your name?\n");
p=fgets(name,20,stdin);
printf("%s?Oh,Nice name %s\n",name,p);
*fgets()的第二個參數(shù)說明最大讀入的字符數(shù)。如果這個參數(shù)值為n,那么fgets()就會讀取最多n-1個字符或讀完一個換行符為止。兩個條件滿足任意一個結束。
*fgets()讀取到換行符,就會把它存到字符串里,而不是想gets()那樣丟棄它。
*fgets()的第三個參數(shù)說明讀哪個文件。從鍵盤上讀數(shù)據(jù)時,可以使用stdin(代表standard input)作為參數(shù)。
scanf()
char name1[11], name2[11];
int count;
printf("\nPlease write down 2 names...\n");
count=scanf("%5s %6s",name1,name2);
printf("\nname1:%s\nname2:%s",name1,name2);
scanf()允許指定輸入字符串長度等格式。上面的程序如果輸入"liujiajia liujiajia",程序?qū)⑤敵?name1:liuji name2:liujia";
字符串輸出:
puts()
char str[15]="hello world";
const char *str2="HELLO WORLD";
puts(str);
puts(str2);
puts(&str[5]);
puts(str2+2);
puts()顯示字符串時自動在其后添加一個換行符。
puts(&str[5]);將輸出從str的第六個元素開始到字符串結束。
puts(str2+2);將輸出從str2的地址向后移動兩個字符開始到字符串結束。
fputs()
fputs(str,stdout);
fputs(str2,stdout);
fputs(&str[5],stdout);
fputs(str2+2,stdout);
*fputs()第二個參數(shù)表示要寫的文件??梢允褂胹tdout(代表standard output)作為參數(shù)。
*fputs()不自動輸出換行符,這與puts()不太相同。
printf()
這個不用多說了。