
#include <stdioh>
char str_cat (char str1, char str2) {
// TODO 请在此处编写代码,完成题目要求
char q[100000];
char p=q;
while(str1)(p++)=(str1++);
while(str2)(p++)=(str2++);
p=str2;
return q;
}
int main () {
char p, str1 = "abc", str2 = "def";
p = str_cat(str1, str2);
printf("%s", p); return 0;}
// void fun(char p1[], char p2[]) 的最后一行
p2[j]='\0';
// 改为:
p1[n]='\0';#include <stdioh>
void fun(char p1[], char p2[])
{
int i=0,j=0,n=0;
while(p1[i]!=0)
{
i++;
n++;
}
while(p2[j]!=0)
{
p1[n]=p2[j];
n++;
j++;
}
p1[n]='\0';
}
main()
{char s1[80], s2[40] ;void NONO ();
printf("Enter s1 and s2:\n");
scanf("%s%s", s1, s2);
printf("s1=%s\n", s1);
printf("s2=%s\n", s2);
printf("Invoke fun(s1,s2):\n");
fun(s1, s2);
printf("After invoking:\n");
printf("%s\n", s1);
//NONO();
}
注意,下面这句
i++
,如果a数组中取出的
不是
'\0'
(结束符)的话,
i
加
1
了
,
while(a[i]!='\0')
i++;
//
所以
下面这句执行
时,
i
应该
是
10
(左右),就是
hello
word
结束后
while(b[j]!='\0')
所以不会覆盖
a
数组中原有数据
思路:先找到第一个字符串的结束位置,接着把第二个字符串的所有字符复制到第一字符串后面,最后加上字符串结束标志'\0'。
参考代码:
#include "stdioh"
void fun(char s1,char s2){
int i=0,j=0;
while(s1[i++]);
i--;
while(s2[j])
s1[i++]=s2[j++];
s1[i]='\0';
}
int main() {
char a[200],b[100];
gets(a);
gets(b);
fun(a,b);
puts(a);
return 0;
}
/
运行结果:
qwerewr
asdfghj
qwerewrasdfghj
/
Please input str1:123
Please input str2:456
123456
Press any key to continue
#include <stdioh>
charmystrcat(charstr1,charstr2);
void main()
{
char str1[50];
char str2[50];
char str;
printf("Please input str1:");
gets(str1);
printf("Please input str2:");
gets(str2);
str=mystrcat(str1,str2);
puts(str);
}
char mystrcat(charstr1,charstr2)
{
charstr=str1;
while (str) //把str移动到str1的最后
str++;
while(str2) //然后再往后面续上str2
str++=str2++; //否则str2 就把str1内容给覆盖了
str='\0';
return str1;
}
几乎所有的字符串函数,第一个参数都是目的参数,结果也是存在这个参数中。
按你的要求:字符+字符串,应该是没有现成的功能函数。如果经常用到,自己封装一个函数吧;
如果你的连接是:字符串+字符,倒是可以使用strncat()函数,strncat(bcd, &a, 1); // bcd 为字符串变量,a为字符变量
以上就是关于大一C语言指针和数组,字符串的连接全部的内容,包括:大一C语言指针和数组,字符串的连接、c语言编程将两个字符串连接起来、C语言中 怎么连接两个字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)