【发布时间】:2012-06-24 19:22:39
【问题描述】:
使用fgets输入字符串,我对读取的字符串长度有疑问。
例如,考虑以下程序。
char str[50];
int i;
int len;
printf("Enter name:\n");
fgets(str,11,stdin);
len = strlen(str);
printf("len : %d\n",len);
如果我输入
123456789,strlen给出 10。如果我输入
1234567890,strlen又是10 ??
我认为strlen 正在考虑换行符也用于字符串长度。我对么?
(我理解fgets 使用换行符作为字符串的一部分)
(2)我输入正好 10 个字符有什么问题,这里的字符串长度应该是 11 对吗? 10 + 1(换行)= 11
【问题讨论】:
-
printf("len : %d",len); printf("str : %s",str); printf("hi");返回 0;添加一些打印有助于澄清下面给出的答案。注意“hi”的打印方式。