В настоящее время я пытаюсь обработать строку в C, и у меня возникают проблемы с размещением разделенных значений строки в массив.Ниже приведен код, который я создал в попытке достичь этого.
#include <stdio.h>
#include <string.h>
int main(){
char str[]="titanic.txt";
char parts[2][5];
char *name = strtok(str, ".");
for (int i = 0; i < 2; i++){
parts[i][5] = name;
char name = strtok(NULL, ".");
}
printf("%c\n", str[0]);
return 0;
}
Вывод, который я ожидал бы получить от этого, надеюсь, будет выглядеть примерно так.
char part[2][10]{
{'t', 'i', 't', 'a', 'n', 'i', 'c'},
{'t', 'x', 't'}
};
В качестве альтернативы я пробовал что-то подобное, используя строковое копирование как таковое.
#include <stdio.h>
#include <string.h>
int main(){
char str[]="titanic.txt";
char parts[2][10];
char *name = strtok(str, ".");
for (int i = 0; i < 2; i++){
strcpy(parts[i], name);
name = strtok(NULL, ".");
}
printf("%s\n", parts[1]);
return 0;
}
Что, сделал то, что я хочу, но я хотел бы попытаться добиться этогобез копирования строк, потому что я чувствую, что это поможет мне лучше понять строки, символы и массивы.Я не хочу изобретать велосипед, я просто хочу глубже понять.