由于字符串的应用广泛,为方便用户对字符串的处理,C语言函数库中除了前面用到的库函数gets()与puts()之外,还提供了另外一些常用的库函数,其函数原型说明在string中。下面介绍一些最常用的字符串库函数。
1.函数名:strcpy
用法:strcpy(s1,s2)
功能:将s2复制到s1
2.函数名:strcat
用法:strcat(s1,s2)
功能:连接s2到s1的末尾,切s1后面的' '被取消
3.函数名:strlen
用法:strlen(s1,s2)
功能:返回s1的长度(不包含空字符)
4.函数名:strcmp
用法:strcmp(s1,s2)
功能:当s1=s2时,返回0值。当s1>s2时,返回大于0的值。当s1<s2时,返回小于0的值。
整数的拼接 设有n个整数(3≤n≤10),将这些整数拼接起来,可以形成一个最大的整数。 例如 n=3, 三个整数分别为21, 7, 34, 拼接后最大的整数为: 73421 输入 第一行一个整数n ,表示有n个整数 第二行n个整数,数与数之间用一个空格分隔。 输出 一个拼接后的最大的整数。 样例 输入 3 21 7 34 输出 73421 #include<bits/stdc++.h> using namespace std; char a[100][100]; char temp1[200],temp2[200]; int main() { int n; cin>>n; for(int i=1; i<=n; i++) cin>>a[i]; for(int i=1;i<=n-1;i++) for(int j=i+1;j<=n;j++) { strcpy(temp1,a[i]); strcpy(temp2,a[j]); strcat(temp1,a[j]); strcat(temp2,a[i]); if (strcmp(temp1,temp2)<0 ) { strcpy(temp1,a[i]); strcpy(a[i],a[j]); strcpy(a[j],temp1); } } for(int i=1;i<=n;i++) cout<<a[i]; cout<<endl; }
5.函数名:strchr
用法:strchr(s1,ch)
功能:返回指针,指向ch在s1中的首次出现
int kk=strchr(a,b)-(a); //查找字符b在a中出现的位置,如果k>=0则说明找到了,如果为负数则没有找到
6.函数名:strstr
用法:strstr(s1,s2)
功能:返回指针,指向s2在s1中的首次出现
7.函数名:strlwr
用法:strlwr(s)
功能:转换s中的大写字母为小写字母
8.函数名:strupr
用法:strupr(s)
功能:转换s中的小写字母为大写字母
单词翻转
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
只有一行,为一个字符串。单词之间以空格隔开。字符串长度不会超过1000
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例
输入
hello world
输出
olleh dlrow
#include<bits/stdc++.h> using namespace std; char a[1000]; int main() { int l,i,j; gets(a); a[l=strlen(a)]=' '; //在结束位置加一个空格 for(i=0;i<=l;i++) if(a[i]==' ') { for(j=i-1;a[j]!=' '&&j>=0;j--) //从找到的空格位置-1,这个位置开始 //倒过来输出字符,并且这个字符不能是空格 cout<<a[j]; cout<<' '; //中间可能遇到多个空格,于是直接输出 } return 0; }