* http://sosal.tistory.com/
* made by so_Sal
*/
#include<iostream>
#include<cstring>
using namespace std;
int main(void){
char one[80]={0,};
char find[80]={0,};
char *first;
char *last;
char change[80]={0,};
char tmp[80]={0,};
unsigned int i;
cout<<"기존 문자열 : ";
cin.getline(one,80); //cin.getline(char*,int cnt)는 띄워쓰기까지 포함하여 배열에 넣습니다.
//사용자가 엔터 치기 전까지의 모든 문자열을 담게됩니다.
cout<<"찾을 문자열 : ";
cin.getline(find,80);
cout<<"바꿀 문자열 : ";
cin.getline(change,80);
for(i=0;i<strlen(one);i++){ //one 이란 배열을 모두 훑어봅니다.
first=&one[i]; // 훑어보는 포인터 first.
if(strncmp(first,find,strlen(find))==0){ //first에서부터 찾는 단어의 크기까지 단어가 같다면
//이제부터 바꿔버립니다.
last = &one[i+strlen(find)]; // last에 바꿔버릴 단어 이후의 시작을 찍습니다.
strncpy(tmp,change,strlen(change)); // last 이후로 바꿀 문자열을 넣고,
strncat(tmp,last,strlen(last)); // 그이후도 다 넣습니다.
strncpy(first,tmp,strlen(tmp)); // 바꿀 문자열의 첫 위치부터 tmp를 넣으면 바뀝니다.
memset(tmp,'\0',sizeof(tmp)); // 임시배열 초기화
}
}
cout<<"결과 문자열 : ";
cout<<one<<endl;
return 0;
}
ex)
'Programing > C- programing' 카테고리의 다른 글
C++. template 템플릿. 자유로운 자료형 만들기 (3) | 2009.11.01 |
---|---|
C++ 학생정보 링크드리스트 코드 소스 (0) | 2009.10.15 |
C++ 배열에서 원하는 크기 삭제 프로그램 코드 (1) | 2009.10.15 |
C++ class date 코드 (0) | 2009.10.15 |
C++ Class 생성자 소멸자 간단한 코드 (2) | 2009.10.13 |