华科15_2

问题:

输入两个字符串,并对其进行如下操作:

1.将两字符串进行拼接  如string buff   ----->  stringbuff

2.对于拼接后的字符串,输出奇数下标组成的子串和偶数下标组成的子串。例如srnbf,tiguf

3.对于奇数下标组成的子串以及偶数下标组成的子串进行排序,如bfnrs fgitu

分析:

字符串拼接可以使用string.h 中的strcat;子串排序可以使用stdlib.h中的qsort

代码:

#include <iostream>  
#include <stdio.h>   
#include <string.h>  
#include <math.h>  
#include <vector>  
#include <queue>  
#include <stack>  
#include <map>  
#include <string>  
#include <algorithm>  
#include <iomanip>
#include <stdlib.h>
#define MAX 1000
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void display(char * str){
	int length= strlen(str);
	for(int i=0;i<length;i++){
		printf("%c",str[i]);
	}
	printf("\n");
}
void display(char * str,int length){
	for(int i=0;i<length;i++){
		printf("%c",str[i]);
	}
	printf("\n");
}
int comp(const void *a, const void *b){
	return *(char *)a-*(char *)b;
}
int main(int argc, char** argv) {
	char str1[MAX],str2[MAX];
	scanf("%s %s",str1,str2);
	//1.拼接 
	char *str3=strcat(str1,str2);
	display(str3);
	
	//2.输入奇数下标和偶数下标子串 
	char odd[MAX],even[MAX];
	int size1=0,size2=0;
	int length=strlen(str3);
	for(int i=0;i<length;i++) {
		if((i+1) % 2 == 1){
			odd[size1++]=str3[i];
		}else{
			even[size2++]=str3[i];
		}
	}
	display(odd,size1);
	display(even,size2);
	
	//3.对于奇数下标组成的子串和偶数下标组成的子串 进行排序
	qsort(odd,size1,sizeof(odd[0]),comp);
	qsort(even,size2,sizeof(even[0]),comp);
	
	display(odd,size1);
	display(even,size2);
	return 0;
}


代码分析:

1.字符串拼接

str3=strcat(str1,str2)

2.qsort函数

功 能: 使用 快速排序例程进行排序
头文件:stdlib.h
用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
参数: 1 待排序 数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的 指针,用于确定排序的顺序
int a[100];
qsort(a,1000,sizeof(int),comp);
1
2
3
4
int  comp( const  void *a, const  void *b)
{
return  *( int *)a-*( int *)b;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值