赞
踩
《程序设计基础实训指导教程-c语言》
ISBN 978-7-03-032846-5
p143
7.1.2 上级实训内容
【实训内容9】输入一个字符串,用子函数完成在字符串中找出ACSII
码值最大的字符,将其放在第一个位置,并将该字符前的所有字符向后顺序移动。例如,输入字符串ABCDeFGH
,结果字符串中的内容为eABCDFGH
#include<stdio.h> #include<string.h> #define MAX 999 void string_scanf(char []); //声明字符串输入函数 int string_bijiao(char *,int); //声明比较字符串函数 void string_paixu(char []); //声明字符串排序函数 char max; //存放最大字符 int count=0; //存放最大字符下标 int main() { char string[MAX]; string_scanf(string); //调用输入函数,字符串首地址传给字符数组str[](实际为*str) printf("\n验证输入!\n"); puts(string); string_bijiao(string,strlen(string)); //调用比较函数,字符串首地址传给指针*pstr,字符串长度传给len string_paixu(string); //调用排序函数,字符串首地址传给,字符数组a[](实际为指针*a) return 0; } void string_scanf(char str[]) { printf("输入字符串:"); gets(str); } int string_bijiao(char *pstr,int len) { int i=0; max=*pstr; //初始化max for(i=0;i<len;i++) { if(max<pstr[i]) { max=pstr[i]; //最大值给max count=i; //下标给count } } printf("max-->%c\n",max); printf("最大字符下标->%d\n",count); } void string_paixu(char a[]) { int i; for(i=count-1;i>=0;i--) //把最大字符之前的字符向后移动一位 { a[i+1]=a[i]; } a[0]=max; //第一位给最大值 printf("输出新的字符串:"); puts(a); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。