C++重新排列字符串? c语言常用函数
- C对一个字符串重新排列,将字母放在前面,数字放在后面
- C语言对一个字符串重新排列,字母排在前面,数字排在后面,并不改变原来字母之间以及数字之间的字符顺序
- 帮忙:C语言:将一个小写英文字符串重新排列,按字符出现的顺序将所有相同字符存放在一起。
- 一道c语言程序题: 输入5个字符串,按字典顺序将其重新排列输出。用字符串指针实现。
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");
}