习题7-5 字符串逆序存放
题目描述
写一个函数将一个字符串按反序存放。在主函数中输入一个字符串,通过调用该函数,得到该字符串按反序存放后的字符串,并输出。
输入
一行字符串。
输出
输入字符串反序存放后的字符串。单独占一行。
代码
#include <stdio.h>
#include <cstring>
void revert(char A[],int n){
for (int i = 0; i < n/2; i++) {
int temp = A[i];
A[i] = A[n-i-1];
A[n-i-1] = temp;
}
}
int main(){
char str[20];
scanf_s("%s",&str, sizeof(str));
int n = strlen(str);
revert(str,n);
printf("%s",str);
return 0;
}
总结
函数的逆序
&:取地址,注意与作位运算符时的不同(双目)
*:取内容 ,注意与作乘运算符时的不同(双目)
习题7-7 复制字符串中的元音字母
题目描述
写一个函数,将一个字符串中的元音字母复制到另一个字符串中。在主函数中输入一个字符串,通过调用该函数,得到一个有该字符串中的元音字母组成的一个字符串,并输出。
输入
一个字符串(一行字符)。
输出
该字符串所有元音字母构成的字符串。行尾换行。
代码
#include <stdio.h>
#include <cstring>
void copy(char s1[],char s2[]) {
int k = 0;
for (int i = 0; i < strlen(s1); i++) {
if (s1[i] == 'a' || s1[i] == 'e' || s1[i] == 'i' || s1[i] == 'o' || s1[i] == 'u' || s1[i] == 'A' || s1[i] == 'E' || s1[i] == 'I' || s1[i] == 'O' || s1[i] == 'U') {
s2[k] = s1[i];
k++;
}
}
}
int main(){
char a[20];
char b[20]=" ";
scanf_s("%s",a,sizeof(a));
copy(a, b);
for (int i = 0; i < strlen(b); i++) {
printf("%c",b[i]);
}
printf("\n");
return 0;
}
总结
知道元音字母是什么的话就很简单了