c 语言不通过函数字符串反转
时间: 2023-12-21 19:04:18 浏览: 27
以下是C语言中不使用函数来反转字符串的实现方式:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "hello world";
printf("Original string: %s\n", 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--;
}
printf("Reversed string: %s\n", str);
return 0;
}
```
与使用函数的方法相同,该程序使用指针来访问字符串中的每个字符,并将左右两端的字符逐一交换。最终,该程序将反转后的字符串输出到控制台中。
相关问题
c 语言通过函数字符串反转
可以通过以下代码实现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语言中可以使用以下两种方法来实现字符串反转:
方法一:使用指针进行反转
```c
#include <stdio.h>
#include <string.h>
void reverseString(char* str) {
int length = strlen(str);
char* start = str;
char* end = str + length - 1;
while (start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
reverseString(str);
printf("Reversed string: %s\n", str);
return 0;
}
```
方法二:使用递归进行反转
```c
#include <stdio.h>
#include <string.h>
void reverseString(char* str, int start, int end) {
if (start >= end) {
return;
}
char temp = str[start];
str[start] = str[end];
str[end] = temp;
reverseString(str, start + 1, end - 1);
}
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
reverseString(str, 0, strlen(str) - 1);
printf("Reversed string: %s\n", str);
return 0;
}
```