Привет всем, спасибо, что нашли время для решения моей проблемы.Я посмотрел на столько материала в этот момент, что я начал все больше и больше путаться.По сути, я пишу простой сегмент кода, который анализирует строку.Пожалуйста, поймите, что мой вопрос не о разборе.Я использую C ++ и никогда раньше не использовал C и обладаю небольшим опытом работы с C ++ (вводный опыт, я все еще новичок).
struct parsedString{
char chunk1[50];
char chunk2[10];
char chunk3[50];
};
main(char* bigstring)
{
parsedString ps;
ps = parseMe(bigString)
cout << ps.chunk1 << endl;
cout << ps.chunk2 << endl;
cout << ps.chunk3 << endl;
}
parsedString parseMe(char* stringToParse)
{
char* parseStr = stringToParse;
parsedString ps;
ps.chunk1 = first x chars;
ps.chunk2 = next y chars;
ps.chunk3 = last z chars;
return ps;
}
Очевидно, что это не работаеткод, я не хотел бросать все лишние вещи, потому что было бы сложнее читать, и я почти уверен, что моя проблема - проблема новичка c / c ++ и что-то о распределении памяти или что-то в этом роде ...
По сути, когда основная функция получает печать строк из parsedString, она выводит именно то, что мне нужно, плюс символы мусора.Я ввожу значения для каждого массива ps.chunk, используя
ps.chunk1 [i] = * parseStr
, так как parseStr получает каждый отдельный символ,Я не могу понять, откуда появляются мусорные символы, это как-то связано с тем, как я получаю доступ к большой строке?Первоначально я использовал char в структуре вместо массивов, и когда я печатал из функции parseMe (), они получались великолепными, но они превращались в тарабарщину, когда я обращался к ней из основной функции.Спасибо за любую помощь, большое спасибо.
Если что-то неясно, пожалуйста, дайте мне знать, что я сделаю все возможное, чтобы уточнить.