1. 首页 > 科技

C++重新排列字符串? c语言常用函数

C++重新排列字符串?c语言常用函数

C对一个字符串重新排列,将字母放在前面,数字放在后面

可以这样,定义三个数组A,B,C,将这个需要排序的字符串存在A数组中,然后统计出A数组中元素的个数n,从0 到n-1遍历A中的每一个元素,与字母做复比较,如果符合要求,制便存在B数组中,再与数字做比较,如果符合要求,便存入C数组中。最后,将A数组清空,将B数组中所有的元素存入A数组中,再紧接着把C数组的所有元素存入A数组中,此时的A便是按题目要求所说的重新排列后的字符数组。如果这还是不懂,zhidao可以追问我我给你代码。

C语言对一个字符串重新排列,字母排在前面,数字排在后面,并不改变原来字母之间以及数字之间的字符顺序

用c函数, isdigit判断是否是数字,isalpha判断是否为字母,在ctype.h文件里面,还有其他判断函数。

帮忙:C语言:将一个小写英文字符串重新排列,按字符出现的顺序将所有相同字符存放在一起。

char *s[]=("","");

s 是一个指针型数组,有两个元素,每个元素指向一个空字符串

char *s="china";

s 是一个指针变量,指向一个字符串。

int a[]={ , };

语法错误,不能用空格代表变量初值。

int a[][x]={{1,2},{3,4}};

语法错误,声明数组时不可使用变量。

char s[]="abcd";

s 是一个字符型数组,有五个元素,保存字符 a、b、c、d 和字符串结束符。

 

char s[]={"china"};

与上例类似。用字符串初始化一维数组,花括号可有可无。

 

char s[]={'a','b'};

s 是一个字符型数组,有两个元素。因为是用字符而不是用字符串来提供初值,不加字符串结束符。

 

如有还有不明白的地方,欢迎追问。

一道c语言程序题: 输入5个字符串,按字典顺序将其重新排列输出。用字符串指针实现。

#include<stdio.h>

#include<string.h>

void main()

{

void sort(char (*p)[20]);

char a[5][20];//五行20列

int i;

printf("请输入5个字符串:\n");

for(i=0;i<5;i++)//这里输入五个字符串

gets(a[i]);

sort(a);//调用函数进行排列

}

void sort(char (*p)[20])

{

char a[20];

int i,j;

for(i=0;i<4;i++)//这里把每一行看做一个元素五个要进行4次比较

for(j=0;j<20;j++)//这里是上下相邻的两行之间对应元素进行比较

{

if(p[i][j]>p[i+1][j])//遇到上行大于交换上下两行

{

strcpy(a,p[i]);

strcpy(p[i],p[i+1]);

strcpy(p[i+1],a);

}

break;

}

printf("五个串按从小到大排列如下:\n");

for(i=0;i<5;i++)

puts(p[i]);

printf("\n");

}