2 Dimensional Char Array to CStrings, где каждая строка является отдельной строкой - PullRequest
0 голосов
/ 24 декабря 2011

Я читаю многомерный массив символов из файла

char pszBillToAddress[3][31];

Каждая строка этого массива содержит строку адреса, и в конечном итоге мне нужно разделить все компоненты на отдельные строки для Address, City, State и Zip, но сейчас получение каждой строки в своей собственной CString - это мое Цель. Что было бы хорошим способом сделать это? Использовать цикл for для добавления всех символов в строке к CString?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2011

Как это настроить, я предполагаю, что каждый столбец - это отдельная строка адреса с длиной строки до 31 символа?

В любом случае pszBillToAddress[0] (то же самое для [1] и [2]) уже являются c-строками. Если вы хотите, чтобы они были в одной строчке, вы могли бы сделать несколько вещей. Возможно, проще всего использовать строку char x[93]; и использовать strncat(), но это способ "C".

Я имею в виду что-то вроде этого:

char pszBillToAddress[3][31];
char x[93];
*x = '\0'; /* Empty string */

/* Retrieve data here somehow */

strncat(x, pszBillToAddress[0], 31);
strncat(x, pszBillToAddress[1], 31);
strncat(x, pszBillToAddress[2], 31);
0 голосов
/ 24 декабря 2011
for (int i = 0;  i < 3;  ++i)
{
    strAddress[i] = pszBillToAddress[i];
}

Предполагая, что это действительно строки с нулевым окончанием. Если есть вероятность того, что они будут заполнены до конца массива символами, а нулевой терминатор отсутствует, вам потребуется другой подход.

...