一个典型的C程序设计问题!期待中!

amstrongest 2002-08-04 12:52:00
程序如下:

是一个实现串的操作的程序。

#include <stdio.h>

int strcmp(char *str1,char *str2)
{
int i;
/*char str1[100];
char str2[100]; */

for(i=0;str1[i]==str2[i];i++)
if(str1[i]=='\0'&&str2[i]=='\0')
return 1;

return 0;
}

void main()
{
char string1[100]={'a','g','a','i','n','\0'};
char string[100];
char ch;
int i,result;

/* for(i=0;i<100;i++)
string[i]=''; */ /*开始这里编译也是有问题,不知道为什么!*/
i=0;

do
{
printf("enter,please!\n");

/* i=0; 我知道这样也可以达到清除串的作用,但不知道为什么那样不行*/
while((ch=getchar())!='\n')
{
string[i]=ch;
i++;
}

string[i]='\0';

result=strcmp(string,string1);

for(i=0;string[i]!='\0';i++)
putchar(string[i]);

putchar('\0');
printf("\n");

for(i=0;i<99;i++)
string[i]=''; ***********************************

}while(result);

printf("\n");
printf("over!");
}

在打了星号的程序行出现问题!
编译错误显示: Character constant must be one or two characters lon

我的本意是清除串,但是为什么不行?是不是和数组越界有关呢?我该如何做?请高手指点!
...全文
59 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicolas 2002-08-04
  • 打赏
  • 举报
回复
臭虫说得对。
ylbug 2002-08-04
  • 打赏
  • 举报
回复
string[i]=''不对,C语言不支持这样写,你可以写成
string[i]=0;
或者
string[i]='\0';
ppwsid30 2002-08-04
  • 打赏
  • 举报
回复
你的string[i]=''中间是什么?是空格吗?如果想把串付空,可以写string[0]=0
Goesthe 2002-08-04
  • 打赏
  • 举报
回复
string[i]=''//这句的两个单引号之间应该有字符,比如‘ ’(中间价一个空格)或者干脆清为0 :string[i]= 0x0;

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧