字符串作为返回值如何表达
时间: 2023-07-26 11:14:06 浏览: 89
在 C 语言中,字符串通常使用字符数组来表示,因此可以将函数的返回值类型声明为 char 类型的指针,指向一个字符数组,即 char* 类型。在函数内部,可以使用动态内存分配函数 malloc() 或者 calloc() 来分配一段内存空间来存储返回的字符串,并将该字符串的指针作为返回值返回。
例如,下面是一个将字符串中的小写字母转换为大写字母的函数,该函数返回一个新的字符串:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* str_upper(const char* str) {
int len = strlen(str);
char* new_str = (char*)malloc(len + 1);
for (int i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') {
new_str[i] = str[i] - 'a' + 'A';
} else {
new_str[i] = str[i];
}
}
new_str[len] = '\0';
return new_str;
}
int main() {
char str[50];
printf("Input a string:");
fgets(str, 50, stdin);
char* new_str = str_upper(str);
printf("The new string is: %s\n", new_str);
free(new_str);
return 0;
}
```
该函数将用户输入的字符串中的小写字母转换为大写字母,并返回一个新的字符串。在函数内部,使用 malloc() 函数动态分配了一段内存来存储新的字符串,并将该字符串的指针作为返回值返回。在主函数中,使用 free() 函数释放了动态分配的内存空间,防止内存泄漏。
阅读全文