C语言判断两个长度不等的字符数组是不是相等的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言判断两个长度不等的字符数组是不是相等的方法相关的知识,希望对你有一定的参考价值。
如题。
两个数组
char a[20];
char b[25];
我想判断他们是否相等。
用什么方法。
原型: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();
如果转成字符串是空字符串,则这个数组就是空数组;
③当然还有其他方法,比如直接打印出这个数组,看看结果是不是空的;
数组长度为0,说明数组里面不包含任何值或嵌套数组、对象等,即为空。
也可以通过循环或查找等方法判断。
以上是关于C语言判断两个长度不等的字符数组是不是相等的方法的主要内容,如果未能解决你的问题,请参考以下文章