Извлечение текста из символа в C
Я начинающий C-программист. Недавно я пытался практиковать использование строковых функций в C.
Поэтому я написал следующую программу:
MessageDetector.c
#include <stdio.h>
#include <string.h>
int main(void)
{
char a[100] = "Alex:HeyGoodMorning!:1911hrs:0:1012:2017:::";
char *p = strtok(a,":");
char n[20];
int i = 1;
while(p != NULL) {
strcpy(n,p);
p = strtok(NULL,":"); //limit to characters before semi-colon
i++;
if (i = 2) { //after 2 occurrences of the semi-colon. print a string
printf("%s\n",n);
break;
}
}
return 0;
}
Вывод моей программы выглядит следующим образом:
Alex
Тем не менее, я хотел бы, чтобы программа выводила
HeyGoodMorning!
Какие изменения я должен внести в вышеуказанную программу? Ваша помощь очень ценится
1 ответ
Решение
Инициализируйте переменную i
с 0 и использовать сравнение вместо присваивания в этом условии
int i = 0;
//...
if(i == 2){//
Примите во внимание, что первый звонок strcpy
избыточно
На самом деле вы можете сделать то же самое без цикла. Например
char a[100] = "Alex:HeyGoodMorning!:1911hrs:0:1012:2017:::";
char *p;
if ((p = strtok(a, ":")) && (p = strtok(NULL, ":")))
{
puts(p);
}