帮忙解决下C语言的问题 谢谢了

来源:百度知道 编辑:UC知道 时间:2024/05/16 01:54:53
1.#include<stdio.h>
main()
{ long nc;
nc=0;
while(getchar()!=EOF) ++nc;
printf("%d\n",nc);
}
输入:Hello,world!
问输出的结果是多少?(答案给的是11.为什么不是12呢?EOF是空的意思吗?如果不是,那是什么意思啊?)
2.#include<stdio.h>
int si(char s[],chat t[])
{ int i,j,k;
for(i=0;s[i]!='\0';i++)
{for(j=i,k=0;t[k]!='\0'&&s[j]==t[k];j++,k++);
if(k>0&&t[k]=='\0')
return i;
};
return -1;
}
main()
{ char s1[]="This is my telephone number.";
char s2[]="one";
printf("%d\n",si(s1,s2);
}
答案给的是17,希望能给出解题思路!谢谢了!
要是答案错了 就说明一下 多谢

i表示s1[]数组的位数,并且第一位记住0,第2位是s[1],以次类推,s[17],也就是数组s1[]的第18位是字母O

1. Hello,World! 12个字符啊
EOF 是一个宏 ,一般定义为-1
用来判断文件结束的标记(end of file)用在文件操作中
键盘输入中,输入 EOF 的方法是:
Windows/MS DOS:ctrl + z
Unix/Linux: ctrl + d

2. 不知道你想问啥?

数组下标以0为开始。。。