字符串逆序输出c语言
时间: 2023-06-21 15:11:30 浏览: 67
下面是一种简单的实现方法:
```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语言字符串逆序输出递归
要实现字符串逆序输出的递归方法,可以按照以下步骤进行:
1. 基本情况:如果字符串为空或者长度为1,则直接输出该字符串。
2. 递归情况:将字符串的第一个字符与剩余部分进行交换,并对剩余部分进行递归调用。
3. 递归结束后,将第一个字符与剩余部分重新交换,以保持原字符串的顺序。
下面是一个示例代码实现:
```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[100];
printf("请输入一个字符串:");
scanf("%s", str);
int length = strlen(str);
reverseString(str, 0, length - 1);
printf("逆序输出的字符串:%s\n", str);
return 0;
}
```
请注意,以上代码将使用递归方法实现字符串逆序输出。下面是几个相关问题:
相关问题:
1. 如何使用非递归方法实现字符串逆序输出?
2. 如何判断一个字符串是否是回文字符串?
3. 如何统计一个字符串中出现的某个字符的个数?