C语言数组怎么赋字符串?

main()
{ char a[2]={0},ch[100];
int i,j;

gets(ch);
for(i=0;i<100;i++)
if(strcmp(ch[i],'0')==0)
a[0]++;
else if(strcmp(ch[i],'1')==0)
a[1]++;
printf("%d...%d\n",a[0],a[1]);
}

为什么我输入 0231032403540
类似这样的一串字符然后一个回车就会出现错误?

老大,你这个函数要干嘛呢?我真没看懂
C语言数组要赋值可以有很多方法啊,比如:
1.char ch[100] = {'a','b','c','d'};
2.再比如:
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
int main()
{
char ch[100]; //这个在堆空间
/*下面是在堆内存分配一百个char字节,并给内存空间赋值*/
char *strpt = (char *)malloc(100*sizeof(char));
strpt = "abcd";

memset(ch,0,100); //先把数组清零
memcpy(ch,strpt,4); //往数组里面拷值
printf("%s\n",ch);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-14
strcmp 是比较字符串的 ,c语言字符串 是先定义个大的字符数组 可以用循环输入字符,也可以直接{" "},也可以你这种gets都可以的 你这个是程的问题,重新写程序
相似回答