C语言判断两个长度不等的字符数组是否相等的方法

如题。
两个数组
char a[20];
char b[25];
我想判断他们是否相等。
用什么方法。

用strcmp阿,不管长度是否相等都能用。
原型:extern int strcmp(const char *s1,const char * s2);
用法:#include <string.h>
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-20
的理解是:如果n位置是字符'X',那么插入字符后为:Xbbbb(设"bbbb"为插入的字符)
//按照你介绍,加上空格这个字符,'o'前面的位置应该是9
//第二,你的字符串太小了,如果str1里的字符为12个,str2里的字符10个,这样插入的话很容易就溢出
//第三,插入的方法不对
#include <stdio.h>
int main()
{
char str1[100],str2[100];//我改为100,使它们足够用
int n,n1,n2,i=0,j=0,k;
int size1=0;//用来记录str1里的字符数
int size2=0;//用来记录str2里的字符数
printf("请输入第一个字符串:\n");
gets(str1);
printf("请输入第二个字符串:\n");
gets(str2);
printf("请输入一整数:\n");
scanf("%d",&n);

for(i=0;i<100;i++)//计算str1里的字符数

for(i=0;i<100;i++)//计算str2里的字符数

//还有其他的情况例如字符数过多(str1用了80个,str2有30个)等待情况都可以通过这两个记录来进行判断,就不赘述了

if(n<=0||n>size1)//判断条件"n<=0||n>20"也不对,在n=18处插入一个大小为4的字符串是不行的
//我用这个判断插入点是否在str1的那些字符内,自己定的,好像你没这个要求
{
do
{printf("输入错误,请重新输入!\n");
scanf("%d",&n);
}while(n<=0||n>size1);
}

/* while(str1[i]!=str1[k])
i++;
while(str1[i++]=str2[j++]!='\0')
printf("链接后的字符串:\n");
puts(str1);

你的这个实现插入的语句有问题,在插入的时候,
要先找到插入点,将str1的插入点之后的字符往后挪,
以空处size2个长度来存放str2的字符
*/

for(i=size1+size2-1;i>n;i--)//后挪
str1[i]=str1[i-size2];//OK

for(i=n;i<n+size2;i++)//插入
//OK

puts(str1);

return 0;
}
另外,站长团上有产品团购,便宜有保证

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网