c - 字符串作为函数参数并从 C 中的函数返回字符串

标签 c string parameters arguments

我想执行以下操作,将字符串作为函数参数传递,并且该函数将返回一个字符串回 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/

相关文章:

c - 添加来自 3 个不同 CSV 列的数字

c - C语言共享库中的静态/全局变量

c - 如何在 Linux 中使用 SDL?

java - Java如何判断字符串中是否存在特殊字符

c++ - 将字符串标记为字符串 vector

javascript - 如何使用javascript获取base64编码图像的地址

php - PDO 在重复 key 更新时插入

c - 在C中使用指针访问一维数组和二维数组的元素

angularjs - 将 UI-Router 状态参数从父级一致传递到子级

javascript - 快速处理函数参数执行