字符串处理函数
由于字符串的应用广泛,为方便用户对字符串的处理,C语言函数库中除了前面用到的库函数gets()与puts()之外,还提供了另外一些常用的库函数,其函数原型说明在string中。下面介绍一些最常用的字符串库函数。
1.函数名:strcpy
用法:strcpy(s1,s2)
功能:将s2复制到s1
2.函数名:strcat
用法:strcat(s1,s2)
功能:连接s2到s1的末尾,切s1后面的'\0'被取消
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;
}

浙公网安备 33010602011771号