问题 A: 习题7-5 字符串逆序存放
题目
题目描述
写一个函数将一个字符串按反序存放。在主函数中输入一个字符串,通过调用该函数,得到该字符串按反序存放后的字符串,并输出。
输入
一行字符串。
输出
输入字符串反序存放后的字符串。单独占一行。
样例输入
样例输出
题解
思路
需要注意的是交换的是count - i - 1
。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #include <iostream> #include <stdio.h> #include <math.h> #include <string.h>
using namespace std;
void reverse(char s[]) { int count = strlen(s); for (int i = 0; i < count / 2; i++) { swap(s[i], s[count - i - 1]); } }
int main() { char s[100]; cin.getline(s, 100); reverse(s); printf("%s", s);
system("pause"); return 0; }
|
问题 B: 习题7-7 复制字符串中的元音字母
题目
题目描述
写一个函数,将一个字符串中的元音字母复制到另一个字符串中。在主函数中输入一个字符串,通过调用该函数,得到一个有该字符串中的元音字母组成的一个字符串,并输出。
输入
一个字符串(一行字符)。
输出
该字符串所有元音字母构成的字符串。行尾换行。
样例输入
样例输出
提示
可以采用如下函数原型
1
| void vowels(char s1[], char s2[]);
|
题解
思路
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| #include <iostream> #include <stdio.h> #include <math.h> #include <string.h>
using namespace std;
void vowels(char s1[], char s2[]) { int count = strlen(s1), j = 0; for (int i = 0; i < count; i++) { if (s1[i] == 'a' || s1[i] == 'e' || s1[i] == 'i' || s1[i] == 'o' || s1[i] == 'u') { s2[j++] = s1[i]; } } s2[j] = '\0'; }
int main() { char s1[100], s2[100]; cin.getline(s1, 100); vowels(s1, s2); printf("%s\n", s2);
system("pause"); return 0; }
|