Codeup《算法笔记》2.6函数---逆序排放、复制存储

问题 A: 习题7-5 字符串逆序存放

题目描述
写一个函数将一个字符串按反序存放。在主函数中输入一个字符串,通过调用该函数,得到该字符串按反序存放后的字符串,并输出。
输入
一行字符串。
输出
输入字符串反序存放后的字符串。单独占一行。
样例输入 Copy

abcd

样例输出 Copy

dcba

解法一:

#include<bits/stdc++.h>
 
char reserve(char a[]){
	int k = strlen(a);
	char b[k];//要另存为数组 
	for(int i = strlen(a)-1; i >= 0; i--){
		b[k-1-i] = a[i];//b和a的下标不一样 
	}
	for(int i = 0; i < strlen(b); i++){
		printf("%c",b[i]);
	}
	
}
 
 int main(){
 	char a[20];
 	gets(a);
 	reserve(a);
 	
 } 

解法二:

#include<bits/stdc++.h>
 using namespace std;
 
 void reserve(char a[]){
 	char c;//交换 
 	int k = strlen(a)-1;
 	for(int i = 0; i <= k/2; i++){//i的范围是一半 
 		c = a[i];
 		a[i] = a[k-i];
 		a[k-i] = c;
	 }
 }
 
 int main(){
 	char a[20];
 	gets(a);
 	reserve(a);
 	puts(a);
 	return 0;
 } 

问题 B: 习题7-7 复制字符串中的元音字母

题目描述
写一个函数,将一个字符串中的元音字母复制到另一个字符串中。在主函数中输入一个字符串,通过调用该函数,得到一个有该字符串中的元音字母组成的一个字符串,并输出。
输入
一个字符串(一行字符)。
输出
该字符串所有元音字母构成的字符串。行尾换行。
样例输入 Copy

CLanguage

样例输出 Copy

auae

提示
可以采用如下函数原型

void vowels(char s1[], char s2[]);
#include<bits/stdc++.h>
using namespace std;

void vowels(char s1[],char s2[]){
	//把s1中的元音(a\e\i\o\u\A\E\I\O\U)复制到s2
	int  j = 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'){
	 		//将s1中符合的依次放在s2的顺序中,要给s2的数组另开变量!!!! 
			s2[j]=s1[i]; 
	 		j++;
		 }
	 }
	 s2[j]='\0';//新生成的数组以\0作为结束符!!!!
	 //生成返回值 
//	 for(int i = 0; i < strlen(s2); i++){
//	 	printf("%c",s2[i]);
//	 }
}


int main(){
	char a[20],b[20];
	gets(a);
	vowels(a,b);
	//主函数再输出 
	puts(b);
	return 0;
} 

将s1中符合的依次放在s2的顺序中,要给s2的数组另开变量!
新生成的数组以\0作为结束符!!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值