今天给各位分享c语言数字字符串排序的知识,其中也会对c语言输入字符串排序字母和数字进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、C语言字符串快速排序函数2、c语言字符串排序问题!3、C语言如何实现字符串中字符和数字分开排序4、c语言字符串排序问题5、C语言 字符串排序的规则是什么?就是字符串排序是什么意思?6、C语言中输入一串字符,怎样让它按照字母从小到大的顺序排列?
C语言字符串快速排序函数
#include stdio.h
#includestdlib.h
#includestring.h
int comp(char *a,char *b)
{
while(*a==*b*a*b){a++;b++;}
return (int)*a-(int)*b;
}
int main(void)
{
char s[1000][20];
int i,n;
scanf(“%d\n”,n);
for(i=0;in;i++)
gets(s[i]);
qsort(s,n,sizeof(s[0]),comp);
printf(“\n”);
for(i=0;in;i++)
puts(s[i]);
system(“pause”);
return 0;
}
c语言字符串排序问题!
不用字符串函数。
本题的一个完整的c程序如下,程序在win-tc和Dev-c++下都调试通过。
#includestdio.h
#includestdlib.h
#includeconio.h
#define N 3/* 设定要输入的字符串个数,可更改 */
int cmp(char *p1,char *p2) /* 字符串比较函数 */
{int i=0;
while (*(p1+i)==*(p2+i))
if (*(p1+i++)==’\0′) return 0; /* 这里是先判断*(p1+i)==’\0’,然后再是i++ */
return (*(p1+i)-*(p2+i));
}
void sort(char *a[N]) /*排序函数*/
{char *temp;
int i,j;
for(i=0;iN-1;i++)/* 选择排序 */
for(j=i+1;jN;j++)
if(cmp(a[i],a[j])0)
{temp=a[i];/* 交换的是字符串的地址,不是字符串的内容,可更改 */
a[i]=a[j];
a[j]=temp;
}
}
int main(void )
{int i;
char s[N][81],*p[N];/* 设定每个字符串不超过80字节 */
printf(“Please input %d strings one by one:\n”,N);
for(i=0;iN;i++)
{gets(s[i]);
p[i]=s[i];
}
sort(p);
printf(“The sequence after sort is:\n”);
for(i=0;iN;i++)
printf(“%s\n”,p[i]);
getch();
return 0;
}
C语言如何实现字符串中字符和数字分开排序
给你个思路吧,你能实现小写的排序,编程本身应该难不到你
程序直接分三部分写,小写的排序,大写的排序,数字的排序。这三个部分可以循环完成。
在小写的排序中这样实现:
1.搞两个指针从前往后找(不想用指针,直接用整形标记下标也行)
2.找到依次两个小写字母,若第一应该在第二之后,交换这两个的位置
3.第一指针指向第二个的位置,第二个继续找下一个小写字母,然后重复步骤2到尾部结束。
4.记录下小写字母的个数n。以上1-3再重复n-1次。
其实就是针对小写字母做冒泡把非小写字母排除在外不动它就是了。
大写和数字的可以循环完成。
具体实现我就不把代码写出来了,你不明白的再问吧
c语言字符串排序问题
你代码里有好多错误啊
少分号
少个大括号
关键还有
n没定义
n
是表示字符串长度么
#include
stdio.h
#include
string.h
void
fun(char
*
a)
{
int
i,j;
char
ch;
//求出字符串有多少个元素
int
n=strlen(a);
for(i=0;in;i++)
//冒泡排序法
for(j=0;jn-1;j++)
{
if(a[j]a[j+1])
//升序
{
ch=a[j];
a[j]=a[j+1];
a[j+1]=ch;
}
}
}
void
main
()
{
char
a[81];
printf(“输入a:\n”);
scanf(“%s”,a);
fun(a);
printf(“结果是:\n”);
printf(“%s\n”,a);
}
C语言 字符串排序的规则是什么?就是字符串排序是什么意思?
我想楼主问的是排序规则吧,把字符串当成一个整体,最常用的是这样的规则(以升序为例):
从字符串的第一个字符开始比较,如果相等就比较后一个;如果不等,就将“小”的那一个放在“大”的前面,这里的大小指的是按照字母表的顺序(实际上比较的是ASCII码值)。
例如:两个字符串”xyh”,”abc”
先比较第一个字符:字母表中x是大于a的,所以升序排序的话就是
“abc”
“xyz”
不知道我说的清楚不?希望能帮到你
C语言中输入一串字符,怎样让它按照字母从小到大的顺序排列?
这可以把字符串输入到字符数组中,然后采用排序的方法来实现:
(需要包含string.h头文件)
char t,s[200];
int i,i;
gets(s);
for(i=0;istrlen(s)-1;i++)
for(j=0;jstrlen(s)-1-i;j++)
if(s[j]s[j+1])
{t=s[j]; s[j]=s[j+1]; s[j+1]=t;}
puts(s);
c语言数字字符串排序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言输入字符串排序字母和数字、c语言数字字符串排序的信息别忘了在本站进行查找喔。