常用的字符串相关函数
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)方法
作者:北岛知寒
出处:https://www.cnblogs.com/crazyacking/p/4693906.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
ACM/文本处理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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!