写一个只能用char来字符串翻转
时间: 2023-12-31 20:07:11 浏览: 19
好的,下面是用char来字符串翻转的代码:
```c
#include <stdio.h>
#include <string.h>
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;
}
}
int main() {
char str[] = "hello world";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
要翻转一个字符串,我们可以遍历字符串的前半部分,将第i个字符与第len-i-1个字符交换,其中len是字符串的长度。这样就可以实现字符串的翻转了。
相关问题
用c语言将一串字符串翻转并输出
你好,我是 C 知道。以下是回答您的问题:
可以使用以下代码将一串字符串翻转并输出:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int len = strlen(str);
for (int i = ; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[] = "Hello, world!";
printf("Original string: %s\n", str);
reverse(str);
printf("Reversed string: %s\n", str);
return ;
}
```
输出结果为:
```
Original string: Hello, world!
Reversed string: !dlrow ,olleH
```
用malloc字符串翻转
下面是使用malloc函数翻转字符串的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* reverse(char* str) {
int len = strlen(str);
char* rev = (char*)malloc(len + 1);
for (int i = 0; i < len; i++) {
rev[i] = str[len - i - 1];
}
rev[len] = '\0';
return rev;
}
int main() {
char* str = "hello world";
char* rev = reverse(str);
printf("%s\n", rev); // 输出:dlrow olleh
free(rev);
return 0;
}
```
该示例中,我们使用了malloc函数动态分配了一个新的字符串数组,然后使用for循环将原字符串中的字符逆序复制到新的字符串数组中,最后在新字符串数组的末尾添加了一个空字符'\0'。最后,我们释放了动态分配的内存。