字符串輸入:
gets()
char name[20];
printf("Hi,What's your name?\n");
gets(name);
printf("Nice name %s",name);
它使用一個(gè)地址把字符串賦予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 關(guān)鍵字返回字符串的地址,程序把這個(gè)地址分配給指針p。
fgets()
fgets()是為文件I/O而設(shè)計(jì)的,處理鍵盤輸入不是特別方便。
printf("\nHi,What's your name?\n");
p=fgets(name,20,stdin);
printf("%s?Oh,Nice name %s\n",name,p);
*fgets()的第二個(gè)參數(shù)說明最大讀入的字符數(shù)。如果這個(gè)參數(shù)值為n,那么fgets()就會(huì)讀取最多n-1個(gè)字符或讀完一個(gè)換行符為止。兩個(gè)條件滿足任意一個(gè)結(jié)束。
*fgets()讀取到換行符,就會(huì)把它存到字符串里,而不是想gets()那樣丟棄它。
*fgets()的第三個(gè)參數(shù)說明讀哪個(gè)文件。從鍵盤上讀數(shù)據(jù)時(shí),可以使用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()允許指定輸入字符串長(zhǎng)度等格式。上面的程序如果輸入"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()顯示字符串時(shí)自動(dòng)在其后添加一個(gè)換行符。
puts(&str[5]);將輸出從str的第六個(gè)元素開始到字符串結(jié)束。
puts(str2+2);將輸出從str2的地址向后移動(dòng)兩個(gè)字符開始到字符串結(jié)束。
fputs()
fputs(str,stdout);
fputs(str2,stdout);
fputs(&str[5],stdout);
fputs(str2+2,stdout);
*fputs()第二個(gè)參數(shù)表示要寫的文件。可以使用stdout(代表standard output)作為參數(shù)。
*fputs()不自動(dòng)輸出換行符,這與puts()不太相同。
printf()
這個(gè)不用多說了。
gets()
char name[20];
printf("Hi,What's your name?\n");
gets(name);
printf("Nice name %s",name);
它使用一個(gè)地址把字符串賦予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 關(guān)鍵字返回字符串的地址,程序把這個(gè)地址分配給指針p。
fgets()
fgets()是為文件I/O而設(shè)計(jì)的,處理鍵盤輸入不是特別方便。
printf("\nHi,What's your name?\n");
p=fgets(name,20,stdin);
printf("%s?Oh,Nice name %s\n",name,p);
*fgets()的第二個(gè)參數(shù)說明最大讀入的字符數(shù)。如果這個(gè)參數(shù)值為n,那么fgets()就會(huì)讀取最多n-1個(gè)字符或讀完一個(gè)換行符為止。兩個(gè)條件滿足任意一個(gè)結(jié)束。
*fgets()讀取到換行符,就會(huì)把它存到字符串里,而不是想gets()那樣丟棄它。
*fgets()的第三個(gè)參數(shù)說明讀哪個(gè)文件。從鍵盤上讀數(shù)據(jù)時(shí),可以使用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()允許指定輸入字符串長(zhǎng)度等格式。上面的程序如果輸入"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()顯示字符串時(shí)自動(dòng)在其后添加一個(gè)換行符。
puts(&str[5]);將輸出從str的第六個(gè)元素開始到字符串結(jié)束。
puts(str2+2);將輸出從str2的地址向后移動(dòng)兩個(gè)字符開始到字符串結(jié)束。
fputs()
fputs(str,stdout);
fputs(str2,stdout);
fputs(&str[5],stdout);
fputs(str2+2,stdout);
*fputs()第二個(gè)參數(shù)表示要寫的文件。可以使用stdout(代表standard output)作為參數(shù)。
*fputs()不自動(dòng)輸出換行符,這與puts()不太相同。
printf()
這個(gè)不用多說了。