當前位置:首頁 » 編程語言 » 字元串連接並排序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()函數的功能是讀取字元串,並存放在指定的字元數組中,遇到換行符或文件結束標志時結束讀入。換行符不作為讀取串的內容,讀取的換行符被轉換為字元串結束標志''。