用c语言编写:利用字符指针实现字符串的倒序排列
时间: 2023-08-10 14:07:33 浏览: 189
好的,以下是用C语言编写的代码实现:
```c
#include <stdio.h>
#include <string.h>
// 定义一个函数,用于将字符串倒序排列
void reverse_string(char *str)
{
int len = strlen(str);
char *p1 = str;
char *p2 = str + len - 1;
while (p1 < p2) {
char tmp = *p1;
*p1 = *p2;
*p2 = tmp;
p1++;
p2--;
}
}
int main()
{
char str[] = "hello world";
// 输出原字符串
printf("原字符串:%s\n", str);
// 倒序排列字符串
reverse_string(str);
// 输出倒序排列后的字符串
printf("倒序排列后的字符串:%s\n", str);
return 0;
}
```
在上述代码中,我们定义了一个函数 `reverse_string`,该函数使用两个字符指针 `p1` 和 `p2` 来交换字符串中对应位置的字符,从而实现字符串的倒序排列。在主函数中,我们先输出原字符串,然后调用 `reverse_string` 函数对字符串进行倒序排列,最后输出倒序排列后的字符串。
相关问题
利用字符指针将一串字符倒序存放后输出。例如原数组a的内容为“VISUAL C++PROGRAM”,倒序后数组a中的内容为“MAGORP++C LASUIV”。+mooc答案
在C语言中,你可以使用字符指针和循环结构来实现字符串的倒序。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
int len = strlen(str);
char temp;
for (int i = 0; i < len / 2; i++) { // 只需要遍历一半长度,因为每一步都交换了两个字符
temp = str[i]; // 存储当前位置的字符
str[i] = str[len - i - 1]; // 将当前位置字符移动到对应反向位置
str[len - i - 1] = temp; // 将存储的字符放回原来的位置
}
}
int main() {
char a[] = "VISUAL C++PROGRAM";
printf("Original string: %s\n", a);
reverse(a); // 调用函数进行倒序
printf("Reversed string: %s\n", a); // 输出倒序后的字符串
return 0;
}
```
当你运行这个程序时,它会先打印出原始字符串"VISUAL C++PROGRAM",然后输出倒序后的字符串"MAGORP++C LASUIV"。
c语言将一串字符串倒序输出
要将一串字符串倒序输出,可以使用C语言中的字符串函数和循环结构来实现。以下是一个例子:
```c
#include <stdio.h>
#include <string.h>
void reverseString(char* str) {
int len = strlen(str); // 获取字符串的长度
for (int i = len - 1; i >= 0; i--) {
printf("%c", str[i]); // 输出每个字符
}
}
int main() {
char str[] = "Hello world!"; // 待倒序输出的字符串
reverseString(str); // 调用函数进行倒序输出
return 0;
}
```
在上述示例中,`reverseString`函数接收一个指向字符串的指针作为参数,并逐个打印字符串中的字符,从最后一个字符开始直到第一个字符。`main`函数中定义了一个字符串`str`,并将其作为参数传递给`reverseString`函数。
运行上述代码,输出结果为:
```
!dlrow olleH
```
上述代码中,我们使用了`strlen`函数来获取字符串的长度,该函数在`string.h`头文件中定义。然后使用`for`循环从字符串末尾开始遍历并输出每个字符。需要注意的是,C语言中的字符串以`'\0'`作为结尾,表示字符串的结束。因此,`strlen`函数返回的长度并不包括`'\0'`字符。
阅读全文
相关推荐













