我在尝试手动连接没有库函数的两个字符串(学校作业)时遇到了总线错误。代码如下:
#include <stdio.h>
char *strcattest(char string1[ ], char string2[ ]);
int main() {
printf("*****STRING CONCATENATION*****\n");
printf("Hello plus Hello: %s\n", strcattest("Hello","Hello"));
printf("Hello plus Hellp: %s\n", strcattest("Hello","Hellp"));
printf("Helo plus Hello: %s\n", strcattest("Helo","Hello"));
printf("Hello plus Helo: %s\n", strcattest("Hello","Helo"));
return(0);
}
char *strcattest(char string1[ ], char string2[ ]) {
int counter = 0;
while(string1[counter]!='\0') {
counter++;
}
int str2counter = 0;
while(string2[str2counter]!='\0') {
string1[counter] = string2[str2counter];
str2counter++;
counter++;
}
string1[counter]='\0';
return string1;
}
我做了一些研究,我想我从概念上理解为什么这不起作用。(我打电话试图修改一个基于静态字符串的变量——string1。)但是,我不知道如何纠正它,以便它自己运行。我尝试在 strcattest 函数中引入一个局部变量,它的行为类似于 string1 的副本,但这让编译器对我大喊大叫,因为我从函数中返回了一个局部变量。
任何帮助深表感谢。谢谢!