C 语言字符串倒置函数246


字符串是 C 语言中使用最广泛的数据类型之一。它们用于存储文本、数字和其他字符序列。有时,我们需要将字符串倒置,也就是将字符串中的字符反转。本文将讨论如何使用 C 语言编写一个字符串倒置函数。

实现

字符串倒置函数可以采用以下算法:1. 声明一个字符数组来存储倒置后的字符串。
2. 使用 strlen() 函数获取原始字符串的长度。
3. 使用一个循环,从原始字符串的最后一个字符开始,将每个字符复制到倒置后的字符串中。
4. 在字符串末尾添加空字符 '\0' 以使其成为有效的字符串。
以下是该算法的 C 语言代码实现:```c
#include
#include
char* reverseString(char* str) {
int len = strlen(str);
char* reversed = (char*)malloc(len + 1);
int i, j;
for (i = len - 1, j = 0; i >= 0; i--, j++) {
reversed[j] = str[i];
}
reversed[len] = '\0';
return reversed;
}
```

这个函数接受一个字符数组作为输入,并返回一个指向已倒置字符串的指针。它使用 malloc() 函数动态分配内存来存储倒置后的字符串。

使用示例

以下是使用 reverseString() 函数的一个示例:```c
int main() {
char str[] = "Hello World!";
char* reversed = reverseString(str);
printf("Original string: %s", str);
printf("Reversed string: %s", reversed);
free(reversed);
return 0;
}
```

输出如下:```
Original string: Hello World!
Reversed string: !dlroW olleH
```

我们还可以使用指向字符串的指针而不是字符数组来传递字符串。例如,上面的示例可以重写为:```c
int main() {
char* str = "Hello World!";
char* reversed = reverseString(str);
printf("Original string: %s", str);
printf("Reversed string: %s", reversed);
free(reversed);
return 0;
}
```

两种方法都将产生相同的结果。

注意事项

使用 reverseString() 函数时,需要注意以下几点:* 该函数会动态分配内存来存储倒置后的字符串。因此,在使用完倒置后的字符串后,必须使用 free() 函数释放内存。
* 该函数假定输入的字符串是一个有效的 C 字符串,即以空字符 '\0' 结尾。
* 该函数不会修改原始字符串。它只会创建一个新字符串并将其返回。

2025-02-03


上一篇:用 C 语言输出正无穷大

下一篇:C 语言中的函数编译和预处理