字符串复制的问题
问题请看代码红色字部分。程序是两个字符串比较。输出整个比较后的ascll码!,相等就是0。不能用strcmp函数#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void input(char *str1, char *str2)
{
int i;
for(i=0;i<30;i++) //把最先的两个字符串赋初值,每个字符为'0'问题网下面看
{
str1[i]='0';
str2[i]='0';
}
printf("请输入第一个字符串\n");
gets(str1);
printf("请输入第二个字符串\n");
gets(str2);
}
void output (char *str1, char *str2)
{
int i, len, len1, cot1=0,cot2=0;
len=strlen(str1);
len1=strlen(str2);
if(len>len1)
for(i=0; i<len; i++)
{
if(str2[i]!='\0'&&str2[i]!='0') 问题在这里。如果没有str2[i]!=‘0’,只有str2[i]!=‘\0’程序就是错的。为啥会这样。如果最开始我没给初值的的话,字符串str[30]他后面不是都跟的‘\0’吗,然而我验证的结果字串结束后只跟了一个'\0',其它的就不是'\0',所以我给了初值才行。那么字符串后面没有给定值的全部是不是'\0'
cot1+=(str1[i]-str2[i]);
else
cot2+=str1[i];
}
else
for(i=0; i<len1; i++)
{
if(str1[i]!='\0'&&str1[i]!='0')
cot1+=str1[i]-str2[i];
else
cot2-=str2[i];
}
printf("比较后的ascll=%d\n",cot1+cot2);
}
int main()
{
char str1[30], str2[30];
while(1)
{
input(str1, str2);
output(str1, str2);
}
return 0;
}