C语言:1.用一个函数实现两个字符串的比较,即自己写一个strcmp函数. 2.两个2行3列的矩阵相加,用指针实现
#includeint strcmp(char *p1,char *p2){ while(*p1||*p2) { if(*p1!=*p2) return(*p1-*p2); else { p1++; p2++; } } return 0; }void main(){ char s1[20],s2[20],*p1,*p2; //字符串 int k; printf("请键入两个字符串:
"); scanf("%s %s",s1,s2); p1=s1; p2=s2; k=strcmp(p1,p2); printf("Result is:%d
",k);}
//void strcmp(char *s1,char *s2)
int strcmp(const char *s1,const char *s2)
{
int s=0,i;
//空指针处理
if(s1==NULL && s2==NULL)//
{
return 0;
}
else if(s1==NULL)
{
return -(int)(unsigned char )(*s2); //0-*s2;
}
else if(s2==NULL)
{
return *s1;
}
//一直找到一个
for(i=0;!s;i++)
{
s=*(s1+i)-*(s2+i);
if( *(s+i) =='\0') || *(s2+i)=='\0')break;
}
//if((s1+i)!=(s2+i))
//s=(s1+i)-(s2+i);
//else
//s=0;
return s;
//printf("%d
",s);
}
#include <stdio.h>
int compare(char a[],char b[])
{
int i=0 ;
while (a[i]!='\0'&&b[i]!='\0'&&a[i]==b[i])
{
i++ ;
}
if (a[i]==b[i])
{
return 0 ;
}
else if(a[i]>b[i])
{
return -1;
}
else
{
return 1;
}
}
int main()
{
char a[20],b[20] ;
printf("请输入两个字符串:\n") ;
scanf("%s%s",a,b) ;
if (compare(a,b)==0)
{
printf("a==b\n") ;
}
else if(compare(a,b)==1)
{
printf("a>b\n") ;
}
else
{
printf("a<b\n") ;
}
printf("%d\n",compare(a,b)) ;
return 0;
}
第二题:
#include <stdio.h>
int main()
{
int i,j ;
int a[2][3],b[2][3] ;
printf("请输入第一个矩阵:\n") ;
for (i=0; i<2; i++)
{
for (j=0;j<3; j++)
{
scanf("%d",&a[i][j]) ;
}
}
printf("请输入第二个矩阵:\n") ;
for (i=0; i<2; i++)
{
for (j=0;j<3; j++)
{
scanf("%d",&b[i][j]) ;
}
}
for (i=0; i<2; i++)
{
for (j=0; j<3; j++)
{
a[i][j]+=b[i][j] ;
}
}
printf("相加后的矩阵:\n");
for (i=0; i<2; i++)
{
for (j=0; j<3; j++)
{
printf("%d ",a[i][j]) ;
}
printf("\n") ;
}
return 0;
}
字符串比较函数。
*str1 - *str2
这个就是用str1现在指向的字符减去str2指向的字符,将减后的结果返回。
比如:
*str1 = "abcd"
*str2 = "abca"
strcmp(str1,str2)的返回是多少?
str1++,str2++
a = a
str1++,str2++
b = b
str1++,str2++
c = c
str1++,str2++
d - a = 3
根据返回值你就知道字符串是否一样,哪个大。
得到3,数值大于0,说明第一个字符串大,等于0表示一样,小于0标识第二个字符串大
C语言:1.用一个函数实现两个字符串的比较,即自己写一个strcmp函数. 2...
int i=0 ;while (a[i]!='\\0'&&b[i]!='\\0'&&a[i]==b[i]){ i++ ;} if (a[i]==b[i]){ return 0 ;} else if(a[i]>b[i]){ return -1;} else { return 1;} } int main(){ char a[20],b[20] ;printf("请输入两个字符串:\\n") ;scanf("%s%s",a,b) ;...
用一个函数实现两个字符串的比较,
在C语言中,`strcmp` 函数用于比较两个字符串。当 `s1` 大于 `s2` 时,`strcmp` 函数返回一个大于0的值;如果两个字符串相等,返回0;如果 `s1` 小于 `s2`,返回一个小于0的值。这个函数是从 `` 头文件中定义的。下面是一个简单的使用示例:```c include include int main() { char s1...
用C语言:写一个函数,将两个字符串连接
字符串连接:即将字符串b复制到另一个字符a的末尾,并且字符串a需要有足够的空间容纳字符串a和字符串b。include<stdio.h>void mystrcat(char a[],char b[]){\/\/把a和b拼接起来 int i=0,j=0;while(a[i++]!='\\0'); i--;while(b[j]!='\\0'){ a[i++]=b[j++];} a[i]='\\0...
用C语言编程:编写一个函数,将两个字符串连接起来
一:char* catStr(char str1[],char str2[]){ strcat(str1,str2);return str1;} 二:char* catStr(char str1[],char str2[]){ int i=0;int lenstr1=0;lenstr=strlen(str1)for(i;i<=strlen(str);i++){ str1[lenstr++]=str2[1];} return str1;} ...
c语言编程 写一个函数,实现两个字符串的比较,即写一个类似于strcmp功能...
include <stdio.h> int strcmp(char *s1, char *s2){ while((*s1++ == *s2++)&& *s1);return (*s1 - *s2);} void main(){ char a[10], b[10];gets(a);gets(b);printf("%d\\n", strcmp(a, b));}
用C语言写一个函数,将两个字符串连接。
1、实际上就是实现strcat这个字符串库函数,在vc自带的crt源码或者linux平台的glibc库中都有strcat的源码,自己可以查阅参考,看看库开发者是如何写代码的,对于学习C语言非常有用。2、示例 include <stdio.h> char *strcat(char *str1, char *str2){ if((str1==NULL)||(str2==NULL)) throw "...
c语言 写一个函数能将两个字符串连接,在主函数中调用
void stringcat(char str1[],char str2[],char str[]){ int i,j;for(i=0;str1[i]!='\\0';i++)str[i]=str1[i];for(j=0;str2[j]!='\\0';j++)str[i+j]=str2[j];str[i+j]='\\0';} void main(){ char s1[]="this is a test",s2[]=", test is a good thing...
用C语言写一个函数,将两个字符串连接。
include <stdio.h>char * my_strcat(char *dst, char *src){ char *p=dst, *q=src; while(*p)p++; while(*q)*p++=*q++; *p=0; return dst;}int main(){ char s[100],d[100]; scanf("%s%s",d,s); my_strcat(d,s); puts(d); return 0...
用C语言编程:编写一个函数,将两个字符串连接起来
1、新建一个工程和.c文件,输入头文件和主函数。2、定义变量类型。3、调用cpy函数。4、定义一个函数,并定义变量类型。5、用一个For 语句和if语句判断是否为元音。6、最后加一个字符串结束符,并在主函数中输出。7、编译。运行。
编写一个函数,实现对两个字符串进行比较,函数原型可为: int strcmp(c...
一个公认的实现方法如下: 注意两个形参应该是const char int my_strcmp(const char *s1, const char *s2){ unsignedchar uc1, uc2;while(*s1 !='\\0' && *s1 ==*s2){ s1++;s2++;} uc1 =(*(unsignedchar*) s1);uc2 =(*(unsignedchar*) s2);return((uc1 < uc2)?-1:(uc1...