字符串处理函数


由于字符串的应用广泛,为方便用户对字符串的处理,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;
}

  

原文地址:https://www.cnblogs.com/cutemush/p/13614510.html