如何在VC6++平台上实现字符串的替换?比如,abcdabcdef中把所有ab都替换成ew,这个该怎么弄啊
《我开动物园的那些年》
类型:小说作品
作者:拉棉花糖的兔子
简介:《我开动物园那些年》是作者拉棉花糖的兔子著作的小说作品。
现在越来越多人开始使用电脑来办公了,各种程序和功能都经常需要使用,但是最近有用户发现电脑开机后,出现应用程序无法正常启动的情况,还弹出0xc0000142的提示,如何解决呢?
#include<string>
using namespace std;
int main()
{
string str = "abcdabcde";
string old_ = "ab";
string new_ = "ew";
cout<<"替换前: "<<str<<endl;
int i = 0;
while(true)//将str字符串中的所有old_字符串替换为new_字符串
{
i = str.find("old_");//string类型的成员函数,用于查找字符传old_在字符串中第一次出
//现的位置,如果没有此字串,则返回-1.当然下一次查找的时候会忽略前一个已经找过的字串
if(i == -1)//查找完所有后,退出循环
break;
str.replace(i,old_.length(),new_);//也是string类的成员函数,这里即使new_的长度超过//了old_也没关系
}
cout<<"替换后: "<<str<<endl;
return 0;
}//string这是C++里面很简单,也很常用的类
a、利用临时变量存储结果
#include <iostream>
#include <string>
using namespace std;
string replaceStr(string a, string b, string c)
{
string result="";
unsigned int alength=a.length();
unsigned int blength=b.length();
int tempi=0;
for(int i=0;i<alength-blength+1;i++)
{
if(a[i]==b[tempi])
{
tempi++;
if(tempi==blength)
{
result.append(c);
tempi=0;
}
}
else
{
if(tempi!=0)
{
i=i-tempi;
tempi=0;
}
result.append(1,a[i]);
}
}
result.append(a.substr(i,alength-i));
return result;
}
void main()
{
string a,b,c;
cout<<"please input the source string: >";
cin>>a;
cout<<"please input the string to be replaced: >";
cin>>b;
cout<<"please input the string to be replaced with: >";
cin>>c;
cout<<endl<<"the source string is: "<<a<<endl;
cout<<"the result string is: "<<replaceStr(a,b,c)<<endl;
}
b、直接修改原字符串
#include <iostream>
#include <string>
using namespace std;
void replaceStr(string& a, string b, string c)
{
unsigned int alength=a.length();
unsigned int blength=b.length();
unsigned int clength=c.length();
int tempi=0;
for(int i=0;i<alength-blength+1;i++)
{
if(a[i]==b[tempi])
{
tempi++;
if(tempi==blength)
{
a=a.substr(0,i-tempi+1)+c+a.substr(i+1,alength-i-1);
alength=a.length();
i=i+clength-blength;
tempi=0;
}
}
else
{
if(tempi!=0)
{
i=i-tempi;
tempi=0;
}
}
}
}
void main()
{
string a,b,c;
cout<<"please input the source string: >";
cin>>a;
cout<<"please input the string to be replaced: >";
cin>>b;
cout<<"please input the string to be replaced with: >";
cin>>c;
replaceStr(a,b,c);
cout<<"the result string is: "<<a<<endl;
}
如何在VC6++平台上实现字符串的替换?比如,abcdabcdef中把所有ab都替换...
include<iostream> include<string> using namespace std;int main(){ string str = "abcdabcde";string old_ = "ab";string new_ = "ew";cout<<"替换前: "<<str<<endl;int i = 0;while(true)\/\/将str字符串中的所有old_字符串替换为new_字符串 { i = str.find("old_");\/\/strin...
C代码中初始化一个字符串
\/\/这样行不。肯定的编译了,通过,VC++6。0 include<stdio.h> include<string.h> define MAX_size 1000 int flag=1,degree=0;void Index(char str[],char word[],int position[]){ int i,len_str,len_word,pos_str,pos_word,k=0,word_number=0;\/\/word_number代表短文中单词的个数 le...
VC++6 中如何用new来分配一个定长的CStringArray数组?
sa.SetSize( 32 , 1024 );\/\/分配了32个字符串数组,1024是步长.我写的用法:CStringArray sa;sa.SetSize( 2 , 128 );sa.SetAt( 0 , "000\\r\\n" );sa.SetAt( 1 , CString("001\\r\\n") );for(int i = 0 ; i < sa.GetCount() ; i++ ){ TRACE( sa.GetAt( i ).GetString...
VC++6.0环境下如何将需要的内容显示在列表框中?具体一些。。谢谢...
m_DataList.InsertString(4, "体育");(6)处理“确定”按钮的单击事件,统计用户选择的学科信息。void CCheckListDlg::OnConfirm(){ int nItemCount = m_DataList.GetCount(); \/\/获取项目数量 CString szContent, szItemData; \/\/定义字符串变量 szContent = "";for (int i=0; i<nI...
c\/c++取字符串
include <string> using namespace std;void main(){ string input_str;cin>>input_str;cout<<"the source string: "<<input_str<<endl;string first_part,second_part;int sybol_index=input_str.find("@",0,1);cout<<"@ is at index: "<<sybol_index<<endl;first_part=input_str....
c++中获取字符串首个字符的方法
string s = "abcde";,如果这样定义,那么s[0]是'a',s[1]就是'b',string类就是这样的特性(这里,s是字符串的首地址)。C语言这样定义字符串是最好的,char c[] = "abcde";(注意:这样没有指定数组大小的定义系统会在最后自动加上'\\0'字符,字符串长度为5+1 = 6),c[0]就是首个...
VC6如何获取中文字符串拼音首字母串
char a = getchar();char b;char c[1000];int i=0;while(a != EOF){ b=getchar();if(b != ' ' && a == ' '){ c[i++]=b;} a = b;} 没试过 不知对不对 能给你点思路也是好的 那个EOF不知对不对
Vc++中的_T(""),高手来看看,帮忙解答!!谢谢!
在老的 VC6 里面,假如你写:char str1[] = "a string";char str2[] = _T("a string");默认情况下两句都不会报错,那是因为 VC6 默认是 ANSI 工程,所以宏 _T 在未定义 UNICODE 时事实上与第一行等价。当改成 Unicode 工程,编译器将会定义 UNICODE 和 _UNICODE 宏,此时必然报错,...
谁会用vc6.0++生成宏展开以后的代码文件?在线等呢
你建立的工程的属性, 我记得VC6++好像是按F7。然后找到C\/C++, 在下面有个Command Line(我的是英文版的,自己对一下吧),在最下面写\/E, 然后再编译就可以了应该。给你确认了一下, Visual C++6.0, 在点工程, Atl+F7, C\/C++, 然后在最下面加一个\/P选项。编译 和你的代码文件在一...
急!vc6如何将int a;中整形的a化为string字符串型的a?
另外转化后的字符串是逆向排列的,如a=1000,化成c="0001",但用c.length()能获得4。main(){ int a=1000;char*itoc();char c[20];c=itoc(a,c);} char*itoc(int x,char*c){ int i=0,d;char s;while(x){ d=x%10;x\/=10;c[i++]=d+'0';} c[i]=0;} ...