我想执行以下操作,将字符串作为函数参数传递,并且该函数将返回一个字符串回 main。简要思路如下:
String str1 = "Hello ";
String received = function(str1);
printf("%s", str3);
String function (String data){
String str2 = "there";
String str3 = strcat(str3, str1);
String str3 = strcat(str3, str2); //str3 = Hello there
return str3;
}
我如何将这个想法转化为 C 语言?谢谢。
最佳答案
您可能已经知道,字符串或字符数组基本上是指向内存位置的指针。因此,从函数返回字符串基本上就是返回指向字符数组开头的指针,该指针存储在字符串名称本身中。
但要注意,永远不应该传递局部函数变量的内存地址。访问此类内存可能会导致 Undefined Behaviour .
#include <stdio.h>
#include <string.h>
#define SIZE 100
char *function(char aStr[]) {
char aLocalStr[SIZE] = "there! ";
strcat(aStr, aLocalStr);
return aStr;
}
int main() {
char aStr[SIZE] = "Hello ";
char *pReceived;
pReceived = function(aStr);
printf("%s\n", pReceived);
return 0;
}
我希望这会有所帮助。
关于c - 字符串作为函数参数并从 C 中的函数返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46538110/