1. 如果定義為20,
"i
am
reading
a
book.",
這個串本身長度20,
再加上結束符'\0'的話,
就會出問題;
2.
puts()函數自帶換行符號;
3.
%s的輸出:
\"%%s\"
,得這樣才可以;
代碼如下:
#include
<stdio.h>
#include
<string.h>
#define
max_len
30
int
main()
{
char
str1[max_len]
=
{0};
char
str2[max_len]
=
{0};
char
str3[max_len]
=
{0};
//////////////////////////////////////////////////////////////////////////
//
input
//
getchcar()
printf("請輸入壹個長度不超過20的字符串(用getchar()實現):\n");
char
temp
=
'
';
int
idx
=
0;
while
((temp
=
getchar())
!=
'\n')
{
str1[idx++]
=
temp;
}
//
gets()
printf("請輸入壹個長度不超過20的字符串(用gets()實現):\n");
gets(str2);
fflush(stdin);
//
scanf()
printf("請輸入壹個長度不超過20的字符串(用帶\"%%s\"scanf()實現):\n");
scanf("%s",
str3);
fflush(stdin);
printf("\n");
//////////////////////////////////////////////////////////////////////////
//
output
//
putchar()
printf("輸出結果:\n");
printf("用putchar()實現:
");
idx
=
0;
while
(str1[idx]
!=
'\0')
{
putchar(str1[idx]);
idx++;
}
printf("\n");
//
puts()
printf("用puts()實現:
");
puts(str2);
//
自帶換行符
//
printf()
printf("用帶\"%%s\"printf()實現:
");
printf("%s",
str3);
printf("\n");
//////////////////////////////////////////////////////////////////////////
printf("\n");
return
0;
}
//
測試結果: