#include <iostream> #include <sstream> #include <stdio.h> #include <string> using namespace std; /*string a = "abc" ,将a放到字符数组*/ void convert(string str,char s[]) { /*abc的长度是3*/
/*string a = "abcde" char aa[]=a;不可以,char aa[]="123"可以*/ for(int i=0;i<str.size();i++){ s[i]=str[i]; } } void chuli(char a[],int N) { //3个元素2趟排序 for(int j =1;j<N;j++ ){ for(int i=0;i<N-j;i++){ if(a[i]>a[i+1]) {int temp=a[i];a[i]=a[i+1];a[i+1] =temp;} } } for(int m=0;m<3;m++) {cout<<a[m]; cout<<" ";} printf("\n"); } int main() { /*动态建立2个数组*/ int num; cin>>num; char *p=new char[3]; string *str =new string[num]; /*给字符串数组赋值*/ for(int i=0;i<num;i++){ string a; cin >>a; //用c特有的scanf输入字符串不好 str[i]=a; } for(int k=0;k<num;k++){ convert(str[k],p); chuli(p,3); p[0]=‘\0‘; } return 0; }
#include <iostream> #include <sstream> #include <stdio.h> #include <string> using namespace std; //输入一个字符,然后进行每个字符的排序,这种子函数的接口定义明显 void chuli(string a) { //算法很简单啊,语法细节太坑了 int N = a.size(); //3个元素2趟排序 for(int j =1;j<N;j++ ){ for(int i=0;i<N-j;i++){ if(a[i]>a[i+1]) {int temp=a[i];a[i]=a[i+1];a[i+1] =temp;} } } for(int m=0;m<3;m++) {cout<<a[m]; cout<<" ";} printf("\n"); } int main() { // string aa = "abc"; // 虽然有数组的[],但是不能传递给字符数组 // printf("%c",aa[3]); //0是a 1是b 2是c 3是‘\0‘ 4是随便的字符 // if(aa[3]==‘\0‘) cout << "123"; 这是可以输出的! int num; cin>>num; string *str =new string[num]; /*给字符串数组赋值*/ for(int i=0;i<num;i++){ cin >>str[i]; //用c特有的scanf输入字符串不好 } for(int k=0;k<num;k++){ chuli(str[k]); } return 0; }
原文:http://www.cnblogs.com/cs-lcy/p/7223324.html