c语言 向字符串中插入字符并排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 向字符串中插入字符并排序相关的知识,希望对你有一定的参考价值。
(1)从键盘用gets函数输入从小到大有序排列的字符串(不多于80个字符)后,再将字符‘k’插入其中,使其仍然有序。
如输入:acfhhlprsyz,则输出:acfhhklprsyz。
(2)从键盘输入一个所含字符从小到大有序排列的字符串(不多于40个字符)后,再输入一个字符插入其中,使其仍然有序,然后输出。例如:
输入:#255BKacfhhlprsyz
再输入:G
输出:#255BGKacfhhlprsyz
#include<stdio.h>
#include<string.h>
/*交换两个字符子程序*/
void swap(char *num1,char *num2)
char ch;
ch = *num1;
*num1 = *num2;
*num2 = ch;
/*排序子程序由小及大*/
void pai_xu(char *p)
int i,j,len;
len = strlen(p);
for(i = 0;i < len -1;i++)
for(j = i+ 1;j < len;j++)
if(p[i] > p[j])swap(&p[i],&p[j]);
/*插入子程序,返回新字符串的长度*/
int cha_ru(char *src,char wait)
char *pointer;
int len;
len = strlen(src);
pointer = src + len + 1;
*pointer = '\0';
pointer -= 2;
while(pointer >= src)
if(*pointer >= wait) *(pointer+1) = *pointer;
else
*(pointer+1) = wait;break;
pointer--;
if(pointer < src) *(pointer+1) = wait;
return len+1;
/************************主函数*****************************/
int main(void)
char ch,a[80],*p;
int i,len;
printf("\n输入一个字符串:\n");
gets(a); /*输入字符串*/
pai_xu(a);/* 排序子程序*/
printf("%s\n",a);
printf("\n请输入待插入的字符:\n");
scanf("%c",&ch);
cha_ru(a,ch);
printf("\n%s\n",a);
return 0;
参考技术A #include "stdio.h"
#include "string.h"
void main()
char s[80];
char s2[81];
int j = 0,m =0;
gets(s);
for(int i = 0;i <=20;i++,j++)
if(s[i] > 'k' && m == 0)
s2[j] = 'k';
j++;
s2[j] = s[i];
m++;
else
s2[j] = s[i];
cout<<s2;
/////////////////////////////
#include "stdio.h"
#include "string.h"
#include "iostream.h"
void main()
char s[80];
char s2[81];
char s3;
int j = 0,m =0;
gets(s);
scanf("%c",&s3);
for(int i = 0;i <=20;i++,j++)
if(s[i] > s3 && m == 0)
s2[j] = s3;
j++;
s2[j] = s[i];
m++;
else
s2[j] = s[i];
cout<<s2;
以上是关于c语言 向字符串中插入字符并排序的主要内容,如果未能解决你的问题,请参考以下文章