c语言编程实现将一个字符串按逆序存放,填空后执行验证。
时间: 2024-05-02 15:17:32 浏览: 11
下面是一个实现将字符串按逆序存放的C语言程序:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char* str);
int main()
{
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
// 去掉换行符
str[strcspn(str, "\n")] = '\0';
reverse_string(str);
printf("按逆序存放后的字符串为:%s\n", str);
return 0;
}
void reverse_string(char* str)
{
int len = strlen(str);
int i, j;
char temp;
for (i = 0, j = len - 1; i < j; i++, j--)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
```
填空验证:
输入:hello world
输出:按逆序存放后的字符串为:dlrow olleh
相关问题
用c语言编程将一个字符串逆序存放
可以使用以下代码来实现:int n = strlen(str);
for (int i=0; i<n/2; i++){
char temp = str[i];
str[i] = str[n-i-1];
str[n-i-1] = temp;
}
用c语言实现:输入一个字符串,使用函数将它逆序存放
好的,我们可以使用指针来实现字符串的逆序存放。具体的实现代码如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char *str);
int main()
{
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
reverse(str);
printf("字符串逆序存放后为:%s\n", str);
return 0;
}
void reverse(char *str)
{
int len = strlen(str);
char *p1 = str; // 指向字符串首地址
char *p2 = str + len - 1; // 指向字符串末尾
char temp;
while (p1 < p2) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
p1++;
p2--;
}
}
```
在这个程序中,我们首先使用 `scanf()` 函数从用户输入中读取一个字符串,并将其存储在字符数组 `str` 中。然后,我们调用 `reverse()` 函数来将字符串逆序存放。在 `reverse()` 函数中,我们使用指针 `p1` 和 `p2` 分别指向字符串的首地址和末尾地址。然后,我们交换 `p1` 和 `p2` 指向的字符,并将指针向字符串中间移动,直到 `p1` 和 `p2` 相遇为止。最终,字符串就被逆序存放了。