Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Nhập xuất "mảng chuỗi"?

    Ví dụ mình có một mãng chuỗi n = 3 phần tử. Mình cho nhập 3 tên Học sinh vào, ví dụ: ten[0] = "Dung", ten[1] = "Thanh", ten[2] = "Nga"
    Giờ mình muốn xuất ra: "Ten cac hoc sinh: Dung Thanh Nga" Nhưng theo code mình viết bên dưới thì nó chỉ xuất ra được: "Ten cac hoc sinh: unghanh" là tịt. Mình nghĩ là mỗi lần nhập thì nó đều còn lại kí tự "\0" ở phía cuối mỗi tên nên chắc do vậy mà không xuất ra được như ý muốn, mình không biết xử lý thế nào, mong mọi người giúp đỡ.

    Mã:
    #include <iostream>
    #include <string>
    using namespace std;
    
    string *ten;
    int n;
    
    void Test()
    {
        cout << "n = ";
        cin >> n;
        ten = new string [n];
        for (int i = 0; i < n; i++)
           {
               getline(cin, ten[i]);
               cin.ignore(1);
           }
        cout << "Ten cac hoc sinh: ";
        for (int i = 0; i < n; i++)
            cout << ten[i];
        delete[]ten;
    }
    
    int main()
    {
        Test();
        return 0;
    }

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình chỉnh chút code của bạn, làm thì ra rồi nhưng chính mình cũng ko hiểu tại sao n lại thiếu 1.(Code chữa cháy cho bạn).
    Mã:
    #include <iostream>
    #include <string>
    using namespace std;
    int n;
    string name[10];
    void Test()
    {
    	cout<<"n =";
    	cin>>n;
    	for(int i=0;i<=n;i++){
    		getline(cin,name[i]);
    		}
    	cout<<"Ten cac hoc sinh: ";
    	for(int i=0;i<=n;i++){
    		cout<<" "<<name[i];
    		}
    }
    int main(){
        Test();
        return 0;
    }

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Sửa lại thế này:

    Mã:
    #include <iostream>
    #include <string>
    using namespace std;
    
    string *ten;
    int n;
    
    void Test()
    {
        cout << "n = ";
        cin >> n;
        ten = new string [n];
        for (int i = 0; i < n; i++)
            cin >> ten[i];
    
        cout << "Ten cac hoc sinh: ";
        for (int i = 0; i < n; i++)
            cout << ten[i];
        delete[]ten;
    }
    
    int main()
    {
        Test();
        return 0;
    }

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi iuiuadu_93
    Mình chỉnh chút code của bạn, làm thì ra rồi nhưng chính mình cũng ko hiểu tại sao n lại thiếu 1.(Code chữa cháy cho bạn).
    Mã:
    #include <iostream>
    #include <string>
    using namespace std;
    int n;
    string name[10];
    void Test()
    {
    	cout<<"n =";
    	cin>>n;
    	for(int i=0;i<=n;i++){
    		getline(cin,name[i]);
    		}
    	cout<<"Ten cac hoc sinh: ";
    	for(int i=0;i<=n;i++){
    		cout<<" "<<name[i];
    		}
    }
    int main(){
        Test();
        return 0;
    }
    Trích dẫn Gửi bởi pato24193
    Sửa lại thế này:

    Mã:
    #include <iostream>
    #include <string>
    using namespace std;
    
    string *ten;
    int n;
    
    void Test()
    {
        cout << "n = ";
        cin >> n;
        ten = new string [n];
        for (int i = 0; i < n; i++)
            cin >> ten[i];
    
        cout << "Ten cac hoc sinh: ";
        for (int i = 0; i < n; i++)
            cout << ten[i];
        delete[]ten;
    }
    
    int main()
    {
        Test();
        return 0;
    }
    Cám ơn 2 bạn nhiều lắm, mình làm được rồi [IMG]images/smilies/clap_grin.gif[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •