有一道c编程,请高手帮帮忙,strcat的用法有些不明白

作者&投稿:郅索 (联系方式在网页底部的电邮联系)
C语言编程:5、编一个程序,将两个字符串连接起来,不要用strcat函数.~

思路:字符串连接先需要找到第一字符串的结束位置,接着把第二字符串元素放到第一字符串后面,最后加上结束标志即可。
参考代码:拼接123和456
#includevoid mystrcat(char a[],char b[]){//字符串连接函数 int i=0,j=0;while(a[i++]!='\0');//找到a的结束位置 i--;while(b[j]!='\0'){//把b元素赋值到a中 a[i++]=b[j++];} a[i]='\0';//加上结束标志 }int main(){char a[100],b[100];scanf("%s%s",a,b);mystrcat(a,b);puts(a); return 0;}/*运行结果:123 456123456*/

思路:输入两个字符串a和b,首先找到第一个字符串a的结束位置,接着把b的所有元素放到a的末尾,最后加上结束标志。
参考代码:
#includevoid mystrcat(char a[],char b[]){int i=0,j=0;while(a[i++]!='\0');//找到a的结束位置 i--;while(b[j]!='\0'){//把b元素赋值到a中 a[i++]=b[j++];} a[i]='\0';//加上结束标志 }int main(){char a[100],b[100];gets(a);gets(b);mystrcat(a,b);puts(a); return 0;}/*运行结果:123456123456*/

函数名: strcat
功 能: 字符串拼接函数
用 法: char *strcat(char *destin, char *source);
程序例:

#include <string.h>
#include <stdio.h>

int main(void)
{
char destination[25];
char *blank = " ", *c = "C++", *Borland = "Borland";

strcpy(destination, Borland);
strcat(destination, blank);
strcat(destination, c);

printf("%s\n", destination);
return 0;
}

#include <string.h>
main()
{char str1[30]="abcde",str2[10]="abc";
strcat(str1,str2);
printf("%s",str1);
}

你是要做strcat函数,还是使用strcat函数
如果是做函数的话

那你所说的自动返回是什么意思?

window中 strcat的声明
char *strcat( char *strDestination, const char *strSource );

如果是按这个标准做的话
那么是一定要return

在这个函数中
函数的返回和strDestination是同一个值
之所以这样子设计,是为了使用者可以更方便的使用
如:
1 可以独立调用,得到str1的结果
strcat( str1, str2 ); str1 = ???
2 可以在等式或者函数中调用
strcmp( strcat( str1, str2 ), str3 )

用不用return 取决于你在函数声明时是不是有返回值
如果声明是 void strcat( ... ),则不需要
你看看你自已的代码吧

相关视频

几道简单的C语言编程题,请高手帮忙
scanf("%d", &num);for(i = 2; i < num;i++)if(num%i == 0)break;if(i == num)printf("%d是素数\\n", num);elseprintf("%d不是素数\\n", num);getch();}include<stdio.h>include<conio.h>void main(void){int a, b, c;printf("请输入三个数:")

C语言程序:高手们,帮我看个题
p=1;for(i=1;i<=n;i++)p=p*y;return p;}程序错误颇多,给出以下几处,仅供参考:1)建议:加上头文件,否则可能编译通不过;2)如果是void的话,建议不用返回,主函数最好用int返回值,并加上return 0;3)C语言以分号作为语句的结束府的,如果你main后面加个分号,表示该行是一条一句...

关于二叉树的一道C编程题,请各位高手帮忙写个完整代码。
楼主你好!这是我的思路:a,b)说明 根结点<左结点<右结点 c)说明这是一棵除了最后一层不满其余层全满的完全二叉树 我觉得a,b的条件可以有很多种解决方法,这里用最简单的办法.就是按每一层的从小到大排序.因此,第一步先将数组排序(快速排序,插入排序...任何一种) nlgn内搞定.第二步,就是完全...

编程题(用C语言做):求S=1+2+4+8+…+64的值。帮帮忙了
int sum(){ int s=0;for(int i=0;i<=64;1++){ s=s+Math.pow(2,i); } return sum;} 打印sum就可以。或 include'"stdio.h"void main(){ int sum=1,i=2;for(i=2;i<=100;){ sum+=i;i=i+2;} printf("1+2+4+6+...+100=");printf("%d",sum);} ...