从 C 中的 char 中提取文本
Extracting text from char in 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!
我应该对上面的程序做哪些修改?非常感谢您的帮助
用 0 初始化变量 i
并在此条件下使用比较而不是赋值
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);
}
我是初学者 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!
我应该对上面的程序做哪些修改?非常感谢您的帮助
用 0 初始化变量 i
并在此条件下使用比较而不是赋值
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);
}