一维字符数组:字符串逆序。 分数 10 作者 苑丽红 单位 长春理工大学 将主函数中输入的字符串反序存放。例如:输入字符串"abcdefg",则应输出"gfedcba"。 函数接口定义: void fun(char str[ ],int n) ;
时间: 2023-06-02 14:07:34 浏览: 109
抱歉,我可以回答这个问题。可以使用两个指针i和j,分别指向字符串头和尾,循环交换它们指向的字符,直到i>=j为止。以下是代码示例:
void fun(char str[], int n) {
int i = 0, j = n - 1;
while (i < j) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
i++;
j--;
}
}
相关问题
输入一个字符串存放到一维字符数组中再加其中各自和逆序存放并输入。C语言
好的,下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN], reverse_str[MAX_LEN];
int len, i, sum = 0;
printf("请输入一个字符串:");
gets(str);
// 计算字符串长度
len = strlen(str);
// 将字符串逆序存放到reverse_str数组中
for (i = 0; i < len; i++) {
reverse_str[len - i - 1] = str[i];
}
// 计算字符串各字符的ASCII码值之和
for (i = 0; i < len; i++) {
sum += str[i];
}
// 将reverse_str和sum输出
printf("字符串逆序存放后为:%s\n", reverse_str);
printf("字符串各字符的ASCII码值之和为:%d\n", sum);
return 0;
}
```
说明:
- 该程序中使用了C语言中的字符串函数`strlen`和`gets`,分别用于计算字符串长度和读取字符串输入;
- 字符串的逆序存放使用了一个循环,通过计算逆序后的索引来实现;
- 字符串各字符的ASCII码值之和使用了一个循环,通过累加每个字符的ASCII码值来实现。
输入一个字符串存放到一-维字符数组中,再将其中各字符逆序存放并输出用cyuyan
好的,下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, i;
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
// 逆序存放
for (i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
printf("逆序存放后的字符串是:%s\n", str);
return 0;
}
```
这个程序要求用户从键盘上输入一个字符串,并将它存储在字符数组 `str` 中。然后,程序使用 `strlen()` 函数计算字符串的长度,并将结果存储在变量 `len` 中。
接下来,程序使用 `for` 循环将 `str` 数组中的各字符逆序存放。循环的条件是 `i < len / 2`,因为只需要交换前一半和后一半的字符即可。
最后,程序使用 `printf()` 函数输出逆序存放后的字符串。
需要注意的是,这个程序只能处理不包含空格的字符串。如果要处理包含空格的字符串,可以使用 `fgets()` 函数读取一行文本,而不是使用 `scanf()` 函数读取一个单词。