2012-12-01 5 views
-3

콘솔에서 일부 텍스트를 읽은 다음 해당 문자열에서 "simple"텍스트를 검색해야합니다. 내가 가진 : 프로그램이 작동하도록 버퍼 [200]을 str []로 변환 할 수 없습니다.

char Buffer[200]; 
cin >> Buffer; //read text form keybord 

char str[] = Buffer; 
char * pch; 
pch = strstr (str,"simple"); 
strncpy (pch,"sample",6); 
puts (str); 

방법 str[]Buffer[200]을 변환 할 수 있습니다. 당신은 C 스타일의 문자열을 사용하여 주장하는 경우

+9

'std :: string'을 사용하십시오. 정말. – chris

+0

Buffer 선언이 있으면 도움이 될 것입니다. – Borgleader

+1

만약 std :: string을 사용할 수 없다면 왜 strstr 호출에서 직접'Buffer '를 사용하지 않을까요? 또한 배열과 포인터 (권장하지 않음)를 사용하여 실제로 사용하려면 포인터에 대한 자세한 내용과 배열과의 관계를 읽어야합니다. –

답변

5

, 당신은 아마 싶어 뭔가 같은 :

std::string buffer; 

std::getline(std::cin, buffer); 

int pos; 

if ((pos=buffer.find("simple")) !=std::string::npos) 
    buffer[pos+1] = 'a'; 

std::cout << buffer; 
:

char Buffer[200]; 
cin >> Buffer; //read text form keybord 

char *pos = strstr(buffer, "simple"); 
if (pos) { 
    buffer[1] = 'a'; 
    puts(buffer); 
} 

당신 ++ 실제 C를 작성하려는 경우, 당신은 아마 뭔가 더 좋아 할 거라고

관련 문제