【发布时间】:2012-09-10 09:16:44
【问题描述】:
我在尝试手动连接两个没有库函数的字符串时遇到了总线错误(学校作业)。代码如下:
#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 的副本,但编译器却因为我从函数中返回一个局部变量而对我大喊大叫。
非常感谢任何帮助。谢谢!
【问题讨论】:
标签: c arrays string concatenation