01/10/2018, 12:26

Tách tên trong C++

#include <iostream>
#include <string>
using namespace std;
void _tachten1nguoi ( const string hoten , string &ten);
int main ()
{

    string hoten = "Le Van Thanh";
    string ten;
    _tachten1nguoi(hoten,ten);
    cout << ten;
    cout <<ten.length();

    return 0;
}

void _tachten1nguoi ( const string hoten, string & ten )
{
    int n = hoten.length();
    for ( int i = n-1 ; i>= 0; i--)
    {
        if (hoten[i] == ' ')
        {
            for ( int j = i+1; j< n; j++)
            {
                ten[j-1-i]= hoten[j];
            }
            break;
        }
    }
}

Mình viết với mục đích để tách tên ra khỏi họ tên, nhưng thất bại, kiểm tra thì độ dài string ten = 0. Mong mọi người giúp đỡ.

Quang Minh viết 14:37 ngày 01/10/2018

Bạn debug trong cái if đi là b thấy vấn đề á

Trình Bá Lân viết 14:39 ngày 01/10/2018

ở cuối hàm

Sau khi thoát khỏi hàm thì nó là

Bạn giải thích cho mình với. mình cũng mới học cái này thôi

rogp10 viết 14:39 ngày 01/10/2018

Không thể gán khơi khơi vậy được.

Trần Minh Thắng viết 14:30 ngày 01/10/2018

String như 1 cái mảng, bạn không thể gọi ra phần tử thứ i không tồn tại trong một chuỗi rỗng được. Mảng a bạn chưa cấp phát khởi tạo gì mà gọi a[i] sao được. Kiểu dữ liệu String á, bạn muốn truy cập hay cập nhật phần tử ten[i] thì bản thân biến ten phải là 1 chuỗi cụ thể rồi, ví dụ “nguyen van a”. Mình nghĩ thế.

Quang Minh viết 14:37 ngày 01/10/2018

Mình viết với mục đích để tách tên ra khỏi họ tên, nhưng thất bại, kiểm tra thì độ dài string ten = 0. Mong mọi người giúp đỡ.

Mảng kí tự trong C

Bài giảng của Anh @ltd, b nên xem cái này này

Bài liên quan
0