本文目录
C++编写一个字符串置换函数
//刚写的code,测试通过,用C++写的//如果有疑问,欢迎交流//如果source里有多个str_s字串,那么都会将其替换掉//这里的条件逻辑,可能有点儿复杂,设定一些状态,用flag表示//flag: 0表示要往tmp_source里插入字符//flag: 1表示当前找到了可能是str_s的字串#include《iostream》#include《string》using namespace std;#define N 1000void repstr(char * source, char * str_s, char * str_d){int src_len = strlen(source);char *tmp_source = new char; //创建一个新串,保存替换后的结果int flag = 0;int cur_idx = 0, str_d_idx = 0, str_s_idx = 0, tmp_idx = 0;while(source != ’\0’){if(flag == 0 && source){flag = 1;str_s_idx++;cur_idx++;}if(flag == 1){if(str_s == ’\0’){str_d_idx = 0;//while(str_d!=’\0’){tmp_source;tmp_idx++;str_d_idx++;}str_s_idx = 0;flag = 0;}else if(str_s){str_s_idx++;cur_idx++;}else if(str_s){flag = 0;cur_idx = cur_idx - str_s_idx;str_s_idx = 0;}}if(flag == 0&&source!=’\0’){tmp_source;tmp_idx++;cur_idx++;}}tmp_source = ’\0’;tmp_idx = 0;while(tmp_source!=’\0’){source;tmp_idx++;}source = 0;delete tmp_source;}int main(){char source = "word hellonicehelotoyouhellowhy";cout《《source《《endl;char *src_s = "hello";char *tar_s = "ChinaFootball";repstr(source, src_s, tar_s);cout《《source《《endl;return 0;}
求教:C++返回字符串函数
String GetChar(String str1,String str2){ int nNum; int nLength; String str3; nLength = str2.length(); for(int i = 0; i《 nLength;i++){ if(i 》= str1.length()) { break; } str3 += str1;}return str3;}
c++字符串(string函数)
#include《iostream.h》#include《string.h》#include《stdio.h》bool docheck(const char *stunum);int main(){ char data={’\0’}; cout《《"zx09081T班级判断\n"; cout《《"请输入学号:"《《endl; for(int i=0;i《11;i++) { data=getchar(); } cout《《endl; if(docheck(data)) cout《《"是zx09081T班学号"《《endl; else cout《《"不是zx09081T班学号"《《endl; return 0;}bool docheck(const char *stunum){ char data={’\0’}; strncpy(data,stunum,8); if(strcmp(data,"zx09081T")==0) return true; else return false;}
C++逆序字符串函数
#includechar*strrev(char*s)函数返回一个逆序的字符串指针如constchar*str="helloworld";char*rev=strrev(str);不过它不是一个标准的字符串函数,查看你的编译器是否有这个实现。
C++有没有什么函数可以取出字符串中的语句来执行的
如果提取指定长度的字符串有专门的函数:strncpy(*s1,*s2,n);
如果提取字符串中从n开始的m个字符,程序如下:
#include《stdio.h》 #include《string.h》 void main() { unsigned int i,j,m,n; char s1; printf("请输入一个字符串以回车键结束:\n"); gets(s1); printf("请输入子串的起始位置和长度:"); scanf("%d%d",&n,&m); if(n》0&&n《=strlen(s1)) { if (m》0&&n+m《=strlen(s1)+1) { for(i=n-1,j=0;s1&&i《n+m-1;i++,j++) s2; s2=’\0’; puts(s2); } else printf("长度超出范围!\n"); else printf("起始位置超出范围!\n"); } }