30/09/2018, 16:18

Bài tập mảng: danh sách tên,xử lý tên và in ra danh sách tên

Có rất nhiều bài tập về danh sách.Em chỉ muốn hỏi đơn giản là nhập danh sách tên,xử lý tên(Chữ hoa ở chữ cái đầu tiên trong tên) và in ra danh sách tên.Trong đó nhập tên và in tên,sắp xếp được sử dụng các hàm.
Khi em nhập danh sasch tên thì em sử dụng mảng 2 chiều.Nhưng khi xử lí tên thì lại dùng mảng một chiều.Nhưng trong hàm main để nhập danh sách và xử lí em không biết phải gọi 2 hàm nhập tên và xử lí tên thế nào ,mọi người có thể giúp em được không ạ.

X viết 18:25 ngày 30/09/2018

hỏi đơn giản thật =)))

Pham Anh viết 18:29 ngày 30/09/2018

Help me!!!
Khi em dùng mảng 1 chiều nhập tên và xuất tên thì lại báo lỗi . hu hu hu .Từ sáng giờ đau đầu với cái này rùi. hu hu hu

#include<stdio.h>
#include<string.h>
void nhapten(char ten[],int n)
{
    int i;
    for(i=0; i<n; i++)
    {
        printf("Nhap ten thu %d",i+1);
        fflush(stdin);
        gets(ten);
    }
}
void xuatten(char ten[],int n)
{
    int i;
    for (i=0; i<n; i++)
    {
        printf("%s \n",ten);
    }
}
int main()
{
    char ten[25];
    int n;
    printf("Nhap so luong ten : ");
    scanf("%d",&n);
    nhapten(ten,n);
    xuatten(ten,n);
    return 0;
}
X viết 18:23 ngày 30/09/2018

làm kiểu này nhập từng chữ cái thì dc. chứ nhập 1 chuỗi vào chắc k rồi =)))) mà hình như code cũng sai

viết 18:32 ngày 30/09/2018

Bạn nên dùng mảng những xâu kí tự: char ten[100][25].
Trong đó 100 là số lượng xâu kí tự có thể nhập được, 25 là độ dài giới hạn của mỗi xâu kí tự.

Pham Anh viết 18:27 ngày 30/09/2018

@minh_vu_03 trước em cũng dùng mảng 2 chiều.Nhưng khi mà em dùng hàm xử lí tên em không biết phải dùng thế nào cả.Hic.

viết 18:23 ngày 30/09/2018

Để bạn dễ hiểu thì mình dùng mảng con trỏ char vậy

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

void nhapten(char* ten) {

    fflush(stdin);
    gets(ten);
}

void xuatten(char* ten) {

    puts(ten);
    cout << endl;
}

int main()  {

    char* ten[100];
    int n;

    cin >> n;
    for(int i = 0; i < n; i++)
        ten[i] = new char[30];

    for(int i = 0; i < n; i++)
        nhapten(ten[i]);

    for(int i = 0; i < n; i++)
        xuatten(ten[i]);

    for(int i = 0; i < n; i++)
        delete[] ten[i];

    return 0;
}
Pham Anh viết 18:31 ngày 30/09/2018

Vâng,có lẽ phải dùng đến con trỏ thôi.Nhưng em đang muốn dùng xâu kí tự anh à.Có lẽ cái nào dễ hơn thì theo thôi.

Bài liên quan
0