Bài tập chuẩn hoá xâu c++

dưới là code của em ạ.anh chị cho e hỏi là tại sao e chỉ nhập đk 1 trường hợp là nguyễn quang vinh còn khi xuống dòng sang trường hợp 2 lại k được.em cám ơn

#include<iostream>
#include<string.h>
using namespace std;

void xu_li(string str) {
    char* temp=new char[str.length()+1];
    strcpy(temp,str.c_str());
    char* p1=strtok(temp," ");
    while(p1!=NULL) {
        p1[0]=toupper(p1[0]);
        cout<<p1<<" ";
        p1=strtok(NULL," ");
    }
}
    

int main() {
    int n;
    cin>>n;
    cin.ignore(1);
    for(int i=1;i<=n;i++) {
        string str;
        getline(cin,str);
        for(int i=0;i<str.length()-1;i++) {
            if (str[i] >= 'A' && str[i]<='Z')
                  str[i]+=32;
        }

        xu_li(str);
    }
    return 0;
    
}

Mình thử vẫn được mà nhỉ. :thinking:

Với lại xu_li() là một hàm thì bạn nên trả về cho nó một chuỗi đã xử lý, chứ đừng in luôn trong hàm vậy.

P/s: Lòi mất ký tự cuối cũng bị viết hoa kìa.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?