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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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'为止。
参考技术A 的理解是:如果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;

另外,站长团上有产品团购,便宜有保证

js判断数组是不是为空

① 利用数组的length属性来判断,length=0->这个数组就是空数组;

② 或者利用数组的各种方法和字符串方法,比如toString();

如果转成字符串是空字符串,则这个数组就是空数组;

③当然还有其他方法,比如直接打印出这个数组,看看结果是不是空的;


参考技术A 最常用的方法是判断数组的长度length是否为0。
数组长度为0,说明数组里面不包含任何值或嵌套数组、对象等,即为空。
也可以通过循环或查找等方法判断。

以上是关于C语言判断两个长度不等的字符数组是不是相等的方法的主要内容,如果未能解决你的问题,请参考以下文章

C语言 判断两个集合是不是相等

求一c语言程序,输入两个数,判断他们是不是相等

判断一个字符是不是相等,该如何表达

判断两个数组是不是相等

C++中判断两个字符串是不是相等,怎么判断

C语言编程-用数组方法编写函数strcmp,比较两个字符串的大小。