C语言字符数组初始化以后是不是不能再给字符数组赋值了?
发布网友
发布时间:2024-03-20 15:10
我来回答
共4个回答
热心网友
时间:2024-03-26 17:24
可以赋值啊!
如f="FAIL"这个地方,这里的f是地址,f 数组的首地址,一个字符串赋值过去,提示出错的
这个是常犯的错误(我课设的时候也犯了一下,再次复习一下),要注意了。
这个地方顺便补充一下,字符指针那里可以直接赋值,这个数组和指针有区别的。具体的,看看书呐,书上有详细说明的。
用个strcpy();函数,头文件是string.h
给你改过了,你看看吧
#include<stdio.h>
#include <string.h>
int main()
{
char c[20]="0",d;
char f[15]="0";
long a;
int b;
for(;scanf("%d%s%d",&a,c,&b)!=EOF;)
{
if(b<59)strcpy(f,"FAIL");
if(b>=59&&b<69)strcpy(f,"PASS");
if(b>=69&&b<79)strcpy(f,"AVERAGE");
if(b>=79&&b<89)strcpy(f,"GOOD");
if(b>=69)strcpy(f,"EXCELLENT");
d=getchar();
printf("%d %s %s\n",a,c,f);
}
return 0;
}
热心网友
时间:2024-03-26 17:27
二维和一维在定义的时候进行初始化都不是必须的。它们都可以在程序的运行时进行输入赋值,或采用其他方式赋值。
热心网友
时间:2024-03-26 17:26
只能用strcpy赋值,不能用=赋值
热心网友
时间:2024-03-26 17:20
char c[20]="0",d;这句话有问题