
一个c语言关于strlen函数的问题
#include<stdio.h>#include<string.h>#defineMAXLINE1000intmain(){intc,i,len;charline[MA...
#include<stdio.h>
#include<string.h>
#define MAXLINE 1000
int main()
{
int c,i,len;
char line[MAXLINE];
for(i=0;(c=getchar())!=EOF;++i)
line[i]=c;
len=strlen(line);
printf("%d\n",len);
}
想知道我这个程序为什么输不出结果??? 展开
#include<string.h>
#define MAXLINE 1000
int main()
{
int c,i,len;
char line[MAXLINE];
for(i=0;(c=getchar())!=EOF;++i)
line[i]=c;
len=strlen(line);
printf("%d\n",len);
}
想知道我这个程序为什么输不出结果??? 展开
3个回答
展开全部
错误:line数组没有进行初始化,因为c风格的字符串,末尾以'\0'结束,即0, 如果你不初始化则strlen()函数那句就是死循环,永远得不到结果。修改为:
char line[MAXLINE] = {0};
按下CTRL+Z键才能结束掉你前面的赋值操作,因为循环条件是判断是否为EOF,这个值是-1,用键盘输入-1,即CTRL+Z键盘。
没事,来百度0x30 贴吧 耍耍,共同,分享交流C/C++
char line[MAXLINE] = {0};
按下CTRL+Z键才能结束掉你前面的赋值操作,因为循环条件是判断是否为EOF,这个值是-1,用键盘输入-1,即CTRL+Z键盘。
没事,来百度0x30 贴吧 耍耍,共同,分享交流C/C++
展开全部
我想你是不明白EOF的意思,EOF是end of file的简称,也就是说你输入的再多它也不会结束,因为没到文件的结尾,刚刚那人的CTRL+Z的意思就是跟结束差不多,你可以这样改
#include<stdio.h>
#include<string.h>
#define MAXLINE 1000
int main()
{
int c,i,len;
char line[MAXLINE];
for(i=0;(c=getchar())!='\n';++i) //这里改为回车符就好了
line[i]=c;
len=strlen(line);
printf("%d\n",len);
}
#include<stdio.h>
#include<string.h>
#define MAXLINE 1000
int main()
{
int c,i,len;
char line[MAXLINE];
for(i=0;(c=getchar())!='\n';++i) //这里改为回车符就好了
line[i]=c;
len=strlen(line);
printf("%d\n",len);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<string.h>
#define MAXLINE 1000
int main()
{
int c,i,len;
char line[MAXLINE];
for(i=0,c = getchar();(c=getchar())!=EOF;++i)
line[i]=c;
len=strlen(line);
printf("%d\n",len);
}
Look at this, after you input the string and an enter, put a Ctrl + z to finish input, answer will come out!!
#include<string.h>
#define MAXLINE 1000
int main()
{
int c,i,len;
char line[MAXLINE];
for(i=0,c = getchar();(c=getchar())!=EOF;++i)
line[i]=c;
len=strlen(line);
printf("%d\n",len);
}
Look at this, after you input the string and an enter, put a Ctrl + z to finish input, answer will come out!!
追问
我试了下,你这个方法确实可以,不过为什么要输入Ctrl+z??这是什么原理???
追答
Ctrl + z表示输入一个EOF
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询