Code đổi chữ cái đầu của mỗi từ thành chữ in hoa không put ra chuỗi mà chỉ ra kí tự cuối cùng

bài tập là: đổi chữ cái đầu của mỗi từ thành chữ in hoa
nhưng sau khi em đổi thì khi put ra màn hình chỉ có đúng ký tự cuối cùng. Bây em muốn put ra cả dãy thì phải làm thế nào ạ? đa tạ đa tạ :weary:

char Fupper(char *s)
{
    s[0]=toupper(s[0]);
    while(strstr(s," ")!=NULL)
    {
        s=strstr(s," ")+1;
        s[0]=toupper(s[0]);
    }
    puts(s);
}

int main()
{
    char string[255], stringcpy[255];
    printf("\nEnter string: ");
    gets(string);
    Fupper(string); 

    getch();
    return 0;
}

Vì con trỏ của bạn sửa tới từ cuối rồi :smile: nên khi puts() thì nó chỉ in từ cuối đến '\n' thôi
bạn puts() ở ngoài hàm main là được. Vì string ở hàm main() vẫn giữ địa chỉ ô đầu tiên của chuỗi

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