字符串相关
来源:互联网 发布:剑三男神捏脸数据 编辑:程序博客网 时间:2024/04/30 00:54
整数转化为字符串采用+‘0’ 再逆序的办法
字符串转换为整数采用减‘0’ 再乘10累加的办法
char*strcpy(char *dest,char *src) 返回值为char* 是为了实现链式表达式
字符数组和字符串最明显的区别就是字符串会被默认加上结束符'\0'
int sprintf(char *buffer,char*format,[argument]...) 以字符串形式输出到内存 可以用于把整形数打印到字符串中 所以在大多数场合可以代替itoa itoa(68,buffer,10);
sprintf 还具有连接字符串的功能 在许多场合可以代替strcat
char * who=''T";char *whom"Duantao" char buffer[100] sprintf(buffer,"%s love %s",who,whom);
//以下为一些字符串的相关操作。
#include<iostream>#include<cstdio>#include<cstdlib>#include<string>#include<assert.h>using namespace std;//字符串拷贝函数的实现Strcpy()char *Strcpy(char *dest,char *src)//之所以返回char* 是为了实现链式表达式{ assert((dest!=NULL)&&(src!=NULL)); char *temp=dest; while((*dest++=*src++)!='\0'); return temp;}//转换字符串格式为原来字符串里的字符+该字符连续出现的个数例如将字符串 1233422222 变为1121324125string ChangeString(string input)//将字符串 1233422222 变为1121324125{ string result; for(int i=0;i<input.length();) { result.push_back(input[i]); if(input[i]!=input[i+1]) { result.push_back('1'); i++; } else { int count=1; while(input[i]==input[i+1]) { count++;i++; } i++;//注意此处还有一个加加 result.push_back(count+'0'); } } return result;}//转换字符串格式为原来字符串里的字符+该字符连续出现的个数例如将字符串 1233422222 变为1121324125char* ChangeString2(char* input)//将字符串 1233422222 变为1121324125{ if(input==NULL) { return NULL; } int length=strlen(input); char *result=new char[length*2+1]; int k=0; for(int i=0;i<length;) { result[k++]=input[i]; if(input[i]!=input[i+1]) { result[k++]='1'; i++; } else { int count=1; while(input[i]==input[i+1]) { count++;i++; } i++;//注意此处还有一个加加 result[k++]=count+'0'; } } result[k++]='\0'; return result;}//做一个程序模拟c++中strstr()函数,strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULLchar* StrStr(char *str,char* substr)//用最简单的模式匹配实现{ if(str==NULL||substr==NULL) { return NULL; } int length1=strlen(str); int length2=strlen(substr); for(int i=0;i<length1;i++) { int temp=i;//用于主串的指针回溯 int j=0;//子串的指针每次都回溯为0 if(str[i]==substr[j]) { while(str[i]==substr[j]) { i++; j++; } if(substr[j]=='\0') { return &str[temp]; } else { i=temp;//主串指针回溯 } } }}int main(){char buffer[100];cout<<sprintf(buffer,"%d",123)<<endl;cout<<buffer<<endl;//cout<<"hello world"<<endl;//StrStr()函数测试char ch1[]="12345678";char ch2[]="234";cout<<StrStr(ch1,ch2)<<endl;//ChangeString2和ChangeString()函数测试char ch[]="1233422222";cout<<ChangeString2(ch)<<endl;string str;getline(cin,str);cout<<ChangeString(str)<<endl; return 0;}
0 0
- 字符串相关
- 字符串相关
- 字符串相关
- 字符串相关
- 字符串相关:
- 字符串相关
- 字符串相关
- 字符串相关
- 字符串相关
- 字符串相关
- 字符串相关
- 字符串相关
- 字符串相关
- 字符串相关
- 字符串相关
- [字符串]HDU1106 字符串相关练习
- 字符串相关应用
- win32字符串相关
- 连续子数组求和
- php-面向对象(1)
- MATLAB 基本数据类型和调用方式
- 08-01 接口 异常 文件IO流
- 部分32位Windows数据类型的介绍
- 字符串相关
- OPENWRT网络打印机TCP/IP共享设置教程 以703N为例
- CF 121E - Lucky Array(树状数组裸题)
- mysql中事物的隐性的提交
- 求一个字符串中连续出现次数最多的子串
- HDOJ 5335 Walk Out 贪心+BFS
- JAVA基础一大堆0801接口+匿名类+IO流
- 查看文件常用指令cat,tac,nl,more,less,head,tail,od
- hdu 4638 Group (离线树状数组)