为什么i!='\0'就不可以
在键盘输入字符串123406,函数返回长整型数123406第四行到十二行为填空,其余是原题目
想知道为什么第八行输入i!='\0'就不可以,输入i<strlen(s)就可以,这是为什么!
还有啊编写代码的时候定义一个字符指针
比如char *s
写的时候什么时候用*s
什么时候用是s?
#include <stdio.h>
#include <string.h>
void NONO();
longfun( char*s )
{
int i,h=0;
for(i=0;i!='\0';i++)
{
h=h*10+s-'0';
}
return h;
}
void main()
{chars; longr;
printf("请输入一个长度不超过9个字符的数字字符串 :");gets(s);
r = fun( s );
printf(" r = %ld\n" , r );
NONO();
}
void NONO()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i;long r;
char s, *p;
fp = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fgets(s, 10, fp);
p = strchr(s, '\n');
if (p) *p = 0;
r = fun(s);
fprintf(wf, "%ld\n", r);
}
fclose(fp) ;
fclose(wf) ;
}
i!='\0';等价于i!=0;根本进入不了循环 1、*s 是一个字符串指针,简单来说可以将其当作一个数组
函数for循环的条件要写成这样才对的
for(i=0;s!='\0';i++)
2、'\0' 就是 0,可以用这段代码验证
int main()
{
printf(" '\\0' = %d\n" , '\0' );//\\将\ 转义
return 0;
}
'\0' = 0
页:
[1]