字符串逆序输出c语言
时间: 2023-06-21 20:11:30 浏览: 108
下面是一种简单的实现方法:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
printf("逆序输出字符串:");
for(int i=strlen(str)-1; i>=0; i--) {
printf("%c", str[i]);
}
printf("\n");
return 0;
}
```
该程序首先从用户输入中读取一个字符串,然后使用 `strlen` 函数获取该字符串的长度。接着,程序使用一个循环从字符串的最后一个字符开始,依次输出每一个字符,直到第一个字符为止。最后,程序输出一个换行符并返回 0。
相关问题
字符串逆序pta c语言
以下是两种实现字符串逆序的例子:
1. 使用C语言实现字符串逆序
```c
#include <stdio.h>
#include <string.h>
int fun(struct stu *p, int n, char *sname) {
int i;
for (i = 0; i < n; i++) {
if (strcmp(p[i].name, sname) == 0)
return p[i].score;
}
return -1;
}
void reverseString(char *p) {
int len = strlen(p);
for (int head = 0, tail = len - 1; head < len / 2; head++, tail--) {
char tmp = p[head];
p[head] = p[tail];
p[tail] = tmp;
}
}
```
2. 使用C语言实现字符串逆序的另一种方法
```c
#include <stdio.h>
#include <string.h>
void reverseString(char *p) {
int len = 0;
for (int i = 0; p[i] != '\0'; i++) {
len++;
}
for (int head = 0, tail = len - 1; head < len / 2; head++, tail--) {
char tmp = p[head];
p[head] = p[tail];
p[tail] = tmp;
}
}
```
c语言数组字符串逆序输出
在C语言中,要逆序输出数组中的字符串,你可以先将整个字符串复制到另一个字符数组中,然后从后向前遍历这个新数组逐个输出字符。以下是简单的步骤:
1. 定义一个临时字符数组用于存储原字符串的倒序。
2. 获取原字符串的长度,通常使用`strlen()`函数。
3. 将原字符串从后往前复制到临时数组,可以借助两个指针,一个指向原数组的末尾,一个指向临时数组的开始,每次循环交换它们所指向的字符,直到相遇为止。
4. 最后遍历并打印临时数组,就得到了原字符串的逆序。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
void reverse_string(char str[], char temp[]) {
int len = strlen(str);
int i = 0, j = len - 1;
while (i < j) {
temp[i] = str[j];
temp[j] = str[i]; // 或者可以用 temp[i++] = str[--j] 双指针交换
i++;
j--;
}
}
int main() {
char str[] = "Hello, World!";
char temp[strlen(str) + 1]; // 加1是为了防止数组越界
// 复制原字符串到temp
strcpy(temp, str);
// 逆序字符串
reverse_string(temp, temp);
printf("Reversed string: %s\n", temp); // 输出逆序后的字符串
return 0;
}
```
阅读全文