【发布时间】:2014-05-27 14:42:32
【问题描述】:
我有一个函数应该合并 2 个字符串并返回结果较长的字符串。该字符串似乎已在函数中成功合并,但返回时信息丢失。函数中的'output'包含合并后的字符串,应该返回这个值。
mergedString 不在 main 中打印,而是在函数中打印。为什么?如何让它发挥作用?
main () {
char *mergedString = mergeStrings( frags[maxOverlapArrPos1], frags[maxOverlapArrPos2], maxCharOverlap);
printf ("mergedStringInMain is %s\n", mergedString);
}
char * mergeStrings(char * string1, char * string2, int overlapCharSize){
int overlapStartPosition = strlen(string1) - overlapCharSize;
char output[] = "";
if (strlen(string2)>overlapCharSize){
strncat(output, string1, overlapStartPosition);
strncat(output , string2, strlen(string2));
}
printf ("mergedStringInFunction is %s\n", output);
return output;
}
输出是:
mergedString 是 abcdefg
mergedString 是 ?
【问题讨论】: