c 语言通过函数字符串反转
时间: 2023-06-22 12:38:55 浏览: 114
可以通过以下代码实现C语言中函数字符串反转:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char* str) {
int l = 0;
int r = strlen(str) - 1;
while (l < r) {
char tmp = str[l];
str[l] = str[r];
str[r] = tmp;
l++;
r--;
}
}
int main() {
char str[] = "hello world";
printf("Original string: %s\n", str);
reverse_string(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
该函数使用指针来访问字符串中的每个字符,并将左右两端的字符逐一交换。最终,该函数将反转后的字符串存储在原始字符串中。
相关问题
c 语言 求字符串长度
在 C 语言中,可以使用 `strlen()` 函数求字符串的长度。它的函数原型如下:
```c
size_t strlen(const char *str);
```
其中,`str` 是要求长度的字符串,函数返回的是 `str` 中的字符数,不包括字符串末尾的空字符 `\0`。需要注意的是,`strlen()` 函数只适用于以空字符结尾的字符串。
举个例子,如果要求字符串 `s` 的长度,可以使用以下代码:
```c
#include <string.h>
int main() {
char s[] = "hello";
size_t len = strlen(s);
printf("The length of s is %zu\n", len);
return 0;
}
```
输出结果为:
```
The length of s is 5
```
c 语言输出浮点型数字反转
在C语言中,要输出浮点型数字的反转,首先需要将浮点数转换成字符串,然后倒序处理字符串,最后再将字符串转换回浮点数并输出。这里提供一个简单的示例,假设我们有一个名为`reverse_float`的函数:
```c
#include <stdio.h>
#include <string.h>
// 将浮点数转换为字符串
char* float_to_string(float num) {
char str[64]; // 足够容纳大多数浮点数表示
sprintf(str, "%f", num);
return str;
}
// 反转字符串
void reverse(char* str) {
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
// 输出反转后的浮点数
void print_reversed_float(float num) {
char* str = float_to_string(num);
reverse(str);
printf("Reversed float: %s\n", str); // 注意这里的输出,因为str不是实际的浮点数
free(str); // 防止内存泄漏,释放动态分配的内存
}
int main() {
float num = 3.14159;
print_reversed_float(num);
阅读全文