Я пишу код, где код ведет себя по-другому, если мой массив не заканчивается пустым пространством. Я хочу проверить, есть ли место в конце или нет. Если нет, то я хочу добавить пробел в конец моего массива. вот код для массива.Конкатенировать «пробел» до конца массива
char* buffer[1024];
fgets(buffer,1024,fp);
char* str = buffer+2; // don't need the first two characters
char* pch;
pch = strtok(str," ");//I am dividing the string into tokens as i need to save each word in a separate variable
.
.
.
Так что мой вопрос, во-первых, как я могу проверить, если последний символ str
пространство или нет? Во-вторых, если это не пространство, как добавить пространство?
Я уже пробовал strcat
, но я думаю, что проблема в том, что я до сих пор не могу понять, как узнать, является ли последний символ пространством или нет. Я знаю, что все это можно сделать легко с помощью строк и векторов. Но я хотел бы получить решение для моего кода. Благодаря!
EDIT: Ниже представлен код разбиения по строке и подсчет количества слов.
//At the end of this while loop. ncol will contain the number of columns
while(1){
fgets(buffer,1024,fp);
if (buffer[1] == 'C'){ // the line is #C 1 2 3 4 5 6 7 8 9 10 11 12 13
char* str = buffer+2;
int n = strlen(str);
if(n == 0 || str[n-1] != ' ') {
str[n] = ' ';
str[n+1] = '\0';
}
char* pch;
pch = strtok(str," ");
while(pch != NULL){
ncol++;
pch = strtok (NULL, " ");
}
}
if(buffer[0] == '#'){
numHeader++;
}
else {break;}
}
Вы спрашиваете действительно о C++. Это выглядит как c. –
Поскольку вы против использования каких-либо функций C++ здесь, даже когда это решение в текущей форме вопроса, я собираюсь заменить [tag: C++] на [tag: c] на этом. Прекратите злоупотреблять тегами. – Griwes
Я думаю, что это лучше 'strtok (str," \ n ")', если это для 'strtok'. – BLUEPIXY