• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

string 질문입니다!

21.02.09 14:20 작성 조회수 131

0

안녕하세요. 이렇게하면 b가 출력이 안되는데 이유를모르겠습니다.. string 으로 하고싶으면 어떻게 바꿔야하나요?

#include <iostream>

#include <string>

using namespace std;

 

int main() {

    

    string a, b;

    getline(cin, a);

    int p =0;

    for(int i=0; i<a.size(); i++){

        if(a[i] != ' '){

            if(a[i] >= 65 && a[i] <= 90){

                b[p++] = a[i]+32;

             

            }else{

                b[p++] = a[i];

           

            }

        }

    }

    b[p] ='\0';

    cout<<b<<'\n';

     

    return 0;

}

답변 2

·

답변을 작성해보세요.

2

안녕하세요^^

스트링은 마지막 널문자를 인식해서 출력하는 방식이 아닙니다. 널문자를 인식하고 출력하는 것은 char 배열입니다.

아래 코드처럼 하시면 됩니다.

#include <bits/stdc++.h>
using namespace std;

 

int main() {

    char ch[100];
    string a, b;

    getline(cin, a);

    int p =0;

    for(int i=0; i<a.size(); i++){

        if(a[i] != ' '){

            if(a[i] >= 65 && a[i] <= 90){

                b[p++] = a[i]+32;

             

            }else{

                b[p++] = a[i];

           

            }

        }

    }

    b[p] ='\0';
    strcpy(ch, b.c_str());  //스트링을 char로 변환해야 널을 마지막 종료로 인식하고 출력합니다.

    cout<<ch<<'\n';

     

    return 0;

}

0

dkujuwe님의 프로필

dkujuwe

질문자

2021.02.11

감사합니다.