【发布时间】:2014-05-09 02:34:41
【问题描述】:
我试图弄清楚如何将一个字符串作为参数传递,然后在 C 中返回另一个字符串。我通过简单地添加测试来练习。这是一个项目,我被困在我需要对字符串进行一些验证并希望在单独的函数中进行验证的地方。显然,我的示例比应有的复杂,但我需要知道如何操作已作为参数传递的字符串,然后将其作为另一个字符串返回。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void stringCopy(char *);
int main()
{
char delay;
char string[10];
printf("Enter the string: ");
scanf("%s", string);
char newString[20];
strcat(newString, stringCopy(string));
printf("String: %s", newString);
delay = getchar();
delay = getchar();
}
/*char stringCopy(char *str)
{
char string2[20] = "test";
strcat(string2, str);
return string2;
}*/
char* stringCopy(char *str)
{
char *string2 = malloc(sizeof(char)*20);
strcpy(string2,"test");
strcat(string2, str);
return string2;
}
这是我的小练习程序的所有代码,提前感谢您的帮助。
**已编辑以显示更改。我只是不知道如何在 main() 中访问新的 new (string2)。
edit2:我似乎无法理解。我真的很感谢大家的帮助。真令人沮丧。我会继续尝试,但我什至不明白为什么会出现错误或如何在 main() 中访问我的新字符串。
edit3:我是个白痴,我的文件扩展名是 .cpp 而不是 .c。
【问题讨论】:
-
这里有什么问题?你得到错误的结果吗?
-
不知道怎么访问main()中的新字符串(string2)
-
只需将函数返回保存在
char*变量中。然后像使用任何其他字符串一样使用它。别忘了free()它。
标签: c string char return parameter-passing