当前位置:首页 » 编程语言 » 字符串连接并排序c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

字符串连接并排序c语言

发布时间: 2022-07-08 23:55:52

1. c语言字符串合并后排序问题

#include<stdio.h>
#include<string.h>

constchar*s="";

intmain(void)
{
inti,j;
chard[20],e[20],buf[80];

scanf("%s",d);
scanf("%s",e);

for(i=0,j=0;i<strlen(s);i++){
chartmp[2]={s[i],0};
if(strstr(d,tmp)||strstr(e,tmp)){
buf[j++]=tmp[0];
buf[j++]='';
}
}
buf[--j]='';
puts(buf);
return0;
}

2. c++编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;
//定义枚举 asc升序,desc降序
enum EnumCompare{ ASC, DESC};
//函数对象
template <typename T>
class Compare
{
private:
EnumCompare comp;
public:
Compare(EnumCompare comp) : comp(comp) { }
inline bool operator () (T a, T b) {
switch (comp) {
case ASC:
return a < b;
break;
case DESC:
return !(a < b);
break;
default:
break;
}
}

};

//谓词函数
template <typename T>
inline bool compare(T a, T b) {
return a < b;
}

int main()
{
string s1 = "hello,";
string s2 = "world";
string s3 = s1 + s2; //C++连接字符串很简单,string类重载了 + 运算符
cout << s3 << endl;
sort(s3.begin(), s3.end(), Compare<char>(DESC));
// sort(s3.begin(), s3.end(), compare<char>);
// sort(s3.begin(), s3.end());
cout << s3 << endl;
return 0;
}

3. 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;i<n;i++)
//冒泡排序法
for(j=0;j<n-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);
}

4. c语言字符串排序

#include&lt;stdio.h&gt;

#include&lt;string.h&gt;

#define SIZE 91

#define LIM 31

#define HALT""

void stsrt(char*strings[],int num);

int main(void)

{

char input[LIM][SIZE];

char*ptstr[LIM];

int ct=0;

int k=0;

printf("input up to%d lines,and I will sort them. ",LIM);

printf("To stop,press the enter key at a line's start. ");

while(ct&lt;LIM&&gets_s(input[ct],100)!=NULL&&input[ct][0]!='')

{

ptstr[ct]=input[ct];

ct++;

}

stsrt(ptstr,ct);

puts(" here's the sorted list: ");

for(k=0;k&lt;ct;k++)

{

puts(ptstr[k]);

}

puts(" here's the list: ");

for(k=0;k&lt;ct;k++)

{

puts(input[k]);

}

return 0;

}

void stsrt(char*strings[],int num)

{

char*temp;

int top,seek;

for(top=0;top&lt;num-1;top++)

{

for(seek=top+1;seek&lt;num;seek++)

{

if(strcmp(strings[top],strings[seek])&gt;0)

{

temp=strings[top];

strings[top]=strings[seek];

strings[seek]=temp;

}

}

}

(4)字符串连接并排序c语言扩展阅读:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--&gt;m域宽,打印出来以后,在控制台上,显示m位;

如果我们要打印的数的位数如果超过我们设定m则原样输出;

如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

5. 字符串排序 C语言编程

#include&lt;stdio.h&gt;

#include&lt;string.h&gt;

#define SIZE 91

#define LIM 31

#define HALT""

void stsrt(char*strings[],int num);

int main(void)

{

char input[LIM][SIZE];

char*ptstr[LIM];

int ct=0;

int k=0;

printf("input up to%d lines,and I will sort them. ",LIM);

printf("To stop,press the enter key at a line's start. ");

while(ct&lt;LIM&&gets_s(input[ct],100)!=NULL&&input[ct][0]!='')

{

ptstr[ct]=input[ct];

ct++;

}

stsrt(ptstr,ct);

puts(" here's the sorted list: ");

for(k=0;k&lt;ct;k++)

{

puts(ptstr[k]);

}

puts(" here's the list: ");

for(k=0;k&lt;ct;k++)

{

puts(input[k]);

}

return 0;

}

void stsrt(char*strings[],int num)

{

char*temp;

int top,seek;

for(top=0;top&lt;num-1;top++)

{

for(seek=top+1;seek&lt;num;seek++)

{

if(strcmp(strings[top],strings[seek])&gt;0)

{

temp=strings[top];

strings[top]=strings[seek];

strings[seek]=temp;

}

}

}

(5)字符串连接并排序c语言扩展阅读:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--&gt;m域宽,打印出来以后,在控制台上,显示m位;

如果我们要打印的数的位数如果超过我们设定m则原样输出;

如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

6. C语言中 字符串怎么排序

直接借助冒泡排序,选择排序即可进行字符串的排序,但是需注意的是,字符串的比较需要借助strcmp函数完成,而字符串的复制需要借助strcpy函数完成。

示例代码如下:

#include"stdio.h"
#include"string.h"
voidsort(chararray[][20],intn);
main(void)
{
charstr[10][20];
inti,j,k,n;
printf("inputn(n<=10):");
scanf("%d",&n);
printf("input%dstring:",n);
for(i=0;i<n;i++)
gets(str[i]);//输入N个字符串
sort(str,n);//对输入的字符串排序
printf("sortstring: ");
for(i=0;i<n;i++)
puts(str[i]);
return0;
}
voidsort(chararray[][20],intn)//定义排序函数
{
chartemp[20];
inti,j,k;
for(i=1;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(array[k],array[j])>0)
k=j;
if(k!=i)
{
strcpy(temp,array[i]);//字符串交换顺序
strcpy(array[i],array[k]);
strcpy(array[k],temp);
}
}
}

7. C语言中如何将10个字符串进行排序

#include<stdio.h>

#include<string.h>

int main()

{

int j,k,i,t,n;

char s[10][10],b[10][10];

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

{

scanf("%s",s[i]);

}

n=strlen(s[1]);

k=0;

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

{

for(j=0;j<9-i;j++)

if(strcmp(s[j],s[j+1])>0)

{

for(k=0;k<n;k++)

b[j][k]=s[j][k];

for(k=0;k<n;k++)

s[j][k]=s[j+1][k];

for(k=0;k<n;k++)

s[j+1][k]=b[j][k];

}

}

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

{

printf("%s ",s[i]);

}

return 0;

}

运行效果:

(7)字符串连接并排序c语言扩展阅读:

scanf函数用法:

scanf("输入控制符",输入参数);

功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。

用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志。所以题中函数输出的值只有空格前面的部分。

如果想要输出包括空格在内的所有数据,可以使用gets()函数读入数据。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志''。