c语言char定义数组出错?
#include<stdio.h>intmain(){intthechar,i;charthestring[100];thestring[100]="ABC,itisno...
#include <stdio.h>
int main()
{
int thechar, i;
char thestring[100];
thestring[100] = "ABC,it is not easy to learn";
printf("这是一个字符串%d\n",thestring);
return 0;
}
我用tc的时候把100改成20或50 答案都不一样 为什么呢
而用c-free的时候运行不了
出现:assignment to `char' from `const char *' lacks a cast
这样的错误
为什么呢 展开
int main()
{
int thechar, i;
char thestring[100];
thestring[100] = "ABC,it is not easy to learn";
printf("这是一个字符串%d\n",thestring);
return 0;
}
我用tc的时候把100改成20或50 答案都不一样 为什么呢
而用c-free的时候运行不了
出现:assignment to `char' from `const char *' lacks a cast
这样的错误
为什么呢 展开
3个回答
2014-05-15
展开全部
字符串要么在定义时赋值, char thestring[100] = "ABC,it is not easy to learn";
如果定义时没赋值,下面赋值择必须是thestring= "ABC,it is not easy to learn";
或者strcpy(thestring,"ABC,it is not easy to learn");(这个要在开始加#include<string.h>)
如果你写成thestring[100] = "ABC,it is not easy to learn";
那么编译器就会以为是把字符串赋值给下标为100的数组元素,但是数组下表最大为99,(C语言中有些编译器不会检测下标越界),所以赋值不成功,因此你换了下标编译不出错,但是结果不同。
还有就是打印的时候,因为打印的是字符串所以%d应该换为%s
如果定义时没赋值,下面赋值择必须是thestring= "ABC,it is not easy to learn";
或者strcpy(thestring,"ABC,it is not easy to learn");(这个要在开始加#include<string.h>)
如果你写成thestring[100] = "ABC,it is not easy to learn";
那么编译器就会以为是把字符串赋值给下标为100的数组元素,但是数组下表最大为99,(C语言中有些编译器不会检测下标越界),所以赋值不成功,因此你换了下标编译不出错,但是结果不同。
还有就是打印的时候,因为打印的是字符串所以%d应该换为%s
2014-05-15
展开全部
1.printf("这是一个字符串%d\n",thestring);
%d错误,改为%s
2.thestring[100] = "ABC,it is not easy to learn";
此句意为:用"ABC,it is not easy to learn"将thestring[100]初始化,前者为字符串,后者仅代表一个字符型数组元素,不合法。而要将thestring="ABC,it is not easy to learn";在c中也不能这样写,需要增加一个头文件(#include<string.h>),将其改为:strcpy(thestring,"ABC,it is not easy to learn");
%d错误,改为%s
2.thestring[100] = "ABC,it is not easy to learn";
此句意为:用"ABC,it is not easy to learn"将thestring[100]初始化,前者为字符串,后者仅代表一个字符型数组元素,不合法。而要将thestring="ABC,it is not easy to learn";在c中也不能这样写,需要增加一个头文件(#include<string.h>),将其改为:strcpy(thestring,"ABC,it is not easy to learn");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-05-15
展开全部
字符串赋值,只能在一开始时就赋值的,不然的话要用到strcpy() 函数。
同时要注意字符串的个数不能超出它本来的元素个数,如这里不能超过100。
strcpy(thestring,"ABC,it is not easy to learn");
头文件是#include<string.h>
同时要注意字符串的个数不能超出它本来的元素个数,如这里不能超过100。
strcpy(thestring,"ABC,it is not easy to learn");
头文件是#include<string.h>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询