字符串的连接c语言题指针,怎么用C语言指针实现字符串比较,C语言实现字符串替换...

Q1:C语言程序 用指针实现字符串比较函数strcmp

其实你这里主要问题是不能接收到两个输入的字符串。

你这里的接受规则是输入两个字符串并用 , 号分隔,比如:abc,abc

但是这里就有一个问题了!计算机怎么知道你输入的,号是你输入的第一个字符串的一个字符呢?还是你两个字符串的分隔?

所以当你输入abc,abc的时候计算识别你的第一个字符串是abc,abc

第二个字符串为\n

所以你这里得到的始终是1、至于解决的办法:

让计算机识别你的分隔符号

那方法就很多了,比如 scanf("%s%s",a,b);输入的时候用空白符(空格,tab,回车键)相间隔

Q2:C语言,指针函数实现字符串的复制,连接,比较长度

现写的差不多 看好给分

字符串复制

char* string_copy(char* pdest, char* psource)

{

if(psource == NULL)

{

pdest = NULL;

return pdest;

}

while ((*pdest++=*psource++)!=\0);

return pdest;

}

字符串连接

char *string_strcat(char* s1, char* s2)

{

char *p = s1;

while(*p++);

--p;

while(*p++ = *s2++)

return s1;

}

字符串比较长度

int string_compare(char* s1, char* s2)

{

char *p1 =s1;

char *p2 = s2;

int i =0, j=0;

while(*p1++)

++i;

while(*p2++)

++j;

if (i > j) return 1;

if (i == j) return 0;

if (i < j) return -1;

}

Q3:C语言:用指针实现比较字符串的大小。。我写的有些问题·!!

代码没什么问题,不过粗心而已。是个最常见最容易犯的错误。

if(i==0) //

printf("数组b=数组a\n");

再者别用if,if if

用if, else if , else 就行了

Q4:C语言:用指针实现字符串大小的比较,应该怎样做呢?

字符串比较,可采用循环遍历字符串,用对应位置的指针所指向的字符进行比较,当相等时,循环,遇到不等或其中一个字符串结束时,结束循环,返回对应指针的对应的字符的差值,根据差值判断两个字符串的大小:

返回值大于0,则前串大,

返回值小于0,则前串小,

返回值等于0,两个字符串相等。

参考代码:#includeintstringcompare(char*a,char*b)

{

while(*a&&*a==*b)

{

a++;

b++;

}

return*a-*b;

}

intmain()

{

intret;

chara[10];

charb[10];

printf("请输入字符串a:");

gets(a);

printf("请输入字符串b:");

gets(b);

ret=stringcompare(a,b);

if(ret>0)

printf("a>b\n");

elseif(ret<0)

printf("aelse

printf("a=b\n");

system("pause");

return0;

}

运行结果:

请输入字符串a: abcde

请输入字符串b: acd

a

请输入字符串a: acd

请输入字符串b: abcde

a>b

请输入字符串a: abc

请输入字符串b: abc

a=b

WWw.Z★dYaN.cOm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值