01/10/2018, 15:29
Hỏi về mảng, mảng con trỏ, truyền mảng vào hàm?
Đề bài của em như thế này: Nhập vào mảng 2 chiều kiểu char. Tìm xem trong mảng trên những dòng chứa dãy con cho trước.
Em đã làm được với mảng 1 chiều, giờ muốn làm với mảng 2 chiều và dùng hàm để chạy. Nhưng em có 1 số câu hỏi sau mong anh chị chỉ giúp ạ:
- Nếu khai báo 1 con trỏ 2 chiều theo kiểu char: **char A; thì làm cách nào để gán giá trị cho nó ạ?
- Nếu khai báo 1 con trỏ 2 chiều theo kiểu char: **char A; thì làm cách nào để lấy ra từng hàng, ví dụ lấy ra hàng đầu tiên thì làm thế nào?
Code của em chưa hoàn thành, nhờ anh chị và các bạn chỉ giúp
#include <iostream>
#include<string.h>
using namespace std;
void nhap_mang_1_chieu(char *B, int n);
void nhap_mang_2_chieu(char **A, int m, int n);
void kiem_tra_hang(char *A, char *B);
void main()
{
char **A;
char *C;
int m, n;
cin >> m >> n;
A = new char *[m];
for (int i=0;i<=n;i++)
{
A[i] = new char[m];
}
C = new char[n];
nhap_mang_1_chieu(C, n);
nhap_mang_2_chieu(A, m,n);
kiem_tra_day_con_theo_hang(?, ?);
}
void nhap_mang_2_chieu(char **A, int m, int n)
{
for (int i=0;i<m;i++)
{
for (int j=0;j<n;j++)
{
cin >> A[i][j];
}
}
}
void nhap_mang_1_chieu(char *C, int n)
{
for (int i = 0; i < n; i++)
{
cin >> C[i];
}
}
void kiem_tra_day_con_theo_hang(char A[], char B[])
{
int i, j;
bool kiem_tra;
for (i = 0; i < strlen(A); i++)
{
int k = 0;
kiem_tra = true;
for (j = i; j < strlen(B) + i; j++)
{
if (A[j] != B[k])
{
kiem_tra = false;
break;
}
else k++;
}
if (kiem_tra == true)
{
cout << "ton tai day con o vi tri thu " << i + 1 << endl;
}
}
if (kiem_tra == false)
{
cout << "khong ton tai day con";
}
}
Bài liên quan