PDA

View Full Version : سوال: برنامه اي كه يك رشته و 2 كلمه بگيرد و در رشته كلمه دوم را جايگزين كلمه اول كند



saeid6994
سه شنبه 28 اردیبهشت 1389, 02:17 صبح
لطفا كمك كنيد:قلب: خيلي روش فكر كردم تقريبا تا آخرش رفتم اما وقتي ميخوام كلمه دوم رو جايگزين كنم اشتباه ميشه :ناراحت:

saeid6994
سه شنبه 28 اردیبهشت 1389, 11:41 صبح
من اينطوري نوشتم :افسرده: اما اشتباهه اگه راهنمايي كنيد ممنون ميشم


#include<iostream.h>
#include<conio.h>
#include<string.h>
main(){
char s[100];
char sh1[20];
char sh2[20];
int k,l,o,j=0,z,n=0,w ;
char m[20];
cin.get(s,99);
cout<<"s="<<s ;
cout<<endl;
cin>>sh1;
cin>>sh2;
k=strlen(sh1);
l=strlen(sh2);
o=l-k;
cout<<"k="<<k<<endl<<"l="<<l<<endl<<"o="<<o<<endl;


for (int i=0;s[i];i++)
if(s[i]==sh1[0]){
z=i;
w=i;

j=0;
for(int a=i;a<=i+k-1;a++){
m[j]=s[a];
j++;
}

if(strcmp(sh1,m)==0){
for(;s[a];a++){
s[w+o]=s[w];
w++;}
for(;z<=i+l;z++){
s[z]=sh2[n];
n++;
}
}
}
cout<<"sjadid="<<s;
getch();
return 0;
}

Salar Ashgi
چهارشنبه 29 اردیبهشت 1389, 11:24 صبح
دوست عزیز با جستجو مطمئنا به موردهای خوبی می رسیدید ؛

با این حال ، یه مثال ساده با استفاده از STL ، که تمام کلمات is یک جمله رو به was تبدیل میکنه :



#include <iostream>
#include <conio>
#include <string>
using namespace std;
int main(){
string str = "it is good that today is sunny";
while(str.find("is")!=-1){
str.replace(str.find("is"),2,"was");
}
cout<<str<<endl;
getch();
}