一个典型的C程序设计问题!期待中!
程序如下:
是一个实现串的操作的程序。
#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
我的本意是清除串,但是为什么不行?是不是和数组越界有关呢?我该如何做?请高手指点!