编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 例如,分别输入下面两个字符串: FirstString SecondString 则程序输出:FirstStringSecondString 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:*/ #include<stdio.h> #include<stdlib.h> void fun(char p1[],char p2[]) { /***************Begin************/ /*************** End ************/ } int main() { FILE *wf,*in; char s1[80],s2[40]; char p1[80]="FirstString",p2[40]="SecondString"; 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); /******************************/ in=fopen("in16.dat","r"); wf=fopen("out16.dat","w"); fscanf(in,"%s %s",p1,p2); fun(p1,p2); fprintf(wf,"%s",p1); fclose(in); fclose(wf); /*****************************/ system("pause"); return 0; }
时间: 2023-07-05 18:35:43 浏览: 122
编一程序,将两个字符串连接起来,不要用strcat函数.cpp
5星 · 资源好评率100%
```
void fun(char p1[], char p2[]) {
int len1 = 0, len2 = 0;
while (p1[len1] != '\0') {
len1++;
}
while (p2[len2] != '\0') {
len2++;
}
for (int i = 0; i < len2; i++) {
p1[len1+i] = p2[i];
}
p1[len1+len2] = '\0';
}
```
解析:本题需要实现字符串的连接。首先需要知道字符串的结束标志是 '\0',即遇到 '\0' 就认为字符串结束。所以我们需要遍历 p1 和 p2,求出它们的长度 len1, len2。然后通过循环将 p2 拼接到 p1 的结尾处,即将 p2 的每个字符依次添加到 p1 的 len1 位置开始的地方,最后在 p1 的结尾处添加 '\0'。
阅读全文