输入字符串按字母大小排列输出
在strcpy那一段就看不懂他要干什么了
**#include cstdio>
#include <iostream>
#include <cmath>
#include <iomanip>
#include <cstring>**
using namespace std;
int main(){
char t[21], cname[11][20];
for(int i = 1 ; i < = 10 ; ++ i)
gets ( cname [i] ) ;
for(int i = 1 ;i < = 9 ;++ i ){
int k=i;
***for(int j =i+1 ;j<=10 ;++j)
if(strcmp(cname[k],cname[j])>0)k=j;
strcpy(t,cname[i]);
strcpy(cname[i],cname[k]);
strcpy(cname[k],t);***
}
for( int i=1 ;i<=10 ;i++)
cout<<cname[i]<<" ";
return 0;
}
2
getline(cin , cname [i]) 是什么意思
(已解决)
二、cin.getline()
用法:接收一个字符串,可以接收空格并输出
#include <iostream>
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
cout<<m<<endl;
}
输入:jkljkljkl
输出:jklj
接收5个字符到m中,其中最后一个为’\0’,所以只看到4个字符输出;
如果把5改成20:
输入:jkljkljkl
输出:jkljkljkl
输入:jklf fjlsjf fjsdklf
输出:jklf fjlsjf fjsdklf
延伸:
1、cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符)
2、当第三个参数省略时,系统默认为’\0’
3、如果将例子中cin.getline()改为cin.getline(m,5,‘a’);当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk
三、getline()
用法:接收一个字符串,可以接收空格并输出,需包含**“#include”**
#include<iostream>
#include<string>
using namespace std;
main ()
{
string str;
getline(cin,str);
cout<<str<<endl;
}
输入:jkljkljkl
输出:jkljkljkl
输入:jkl jfksldfj jklsjfl
输出:jkl jfksldfj jklsjfl
四、注意的问题
1、cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数