常用的字符串相关函数

char类:

1.strcpy(s1,s2);将s2为起始地址的字符串复制到s2中。

2.strncpy(s1,s2,k);将s2为起始地址的字符串的前k个复制到s1中。

char s1[20],s2[20];
cin>>s2;
int k=4;
strncpy(s1,s2,k);
s1[k]='\0';
cout<<s1<<endl;

3.strstr(s1,s2);在s1中查找s2,如果查找到,返回第一次出现的位置;否则返回NULL。

char s1[]={"abc"},s2[]={"iiiabciii"};
char* pos=strstr(s2,s1);
if(pos!=NULL) printf("%s\n",pos);
//输出:abciii

4.strcmp(s1,s2);按字典序比较s1和s2的大小。相等返回0;s1>s2返回1;s1<s2返回-1。

5.strncmp(s1,s2,n);strncmp函数是指定比较size个字符。也就是说,如果字符串s1与s2的前size个字符相同,函数返回值为0。

char s1[]={"abcdd"};
char s2[]={"abc"};
printf("%d\n",strncmp(s1,s2,3));

 6.memcpy(s2,s1,size);内存拷贝函数,将s1中长度为size的内存拷贝到s2中。

char s1[10]={"abcd"};
char s2[10];
memcpy(s2,s1,sizeof s1);
puts(s2);

 

7.strcat(s2,s1);将s1连接到s2后面。

char s1[10]={"abcd"};
char s2[10]={"yyyy"};
strcat(s1,s2);
puts(s1);

 

 

string类:

1. string.c_str();

返回的是const char*类型;

string s;
cin>>s;
const char* str=s.c_str();
puts(str);

 2.stringstream类.

  以string类创建缓冲区,提高输入速度.

复制代码
#include<cstdio>
#include<sstream>
#include<iostream>
using namespace std;
string str;
int main()
{
      while(getline(cin,str))
      {
           stringstream stringStream(str);
           while(stringStream>>str)
           {
                 cout<<str<<endl;
           }
      }
      return 0;
}
复制代码

 3.string.substr(int pos,int len)方法

 

posted @   北岛知寒  阅读(199)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
历史上的今天:
2014-08-01 线段树 + 区间更新 ----- HDU 4902 : Nice boat
2014-08-01 线段树 + 区间更新: HDU 4893 Wow! Such Sequence!
点击右上角即可分享
微信分享提示
主题色彩