使用 strtok,最后一个标记带有一个行分隔符
Using strtok, last token comes with a line delimiter
因此,当编写此代码并显示它带有行分隔符“\n”的最后一个标记时,我该如何将其删除?
while( fgets( c, MAX_viagens, f) != NULL ) {
int i = 0;
char *p = strtok (c, ":");
char *array[6];
while (p != NULL){
array[i++] = p;
p = strtok (NULL, ":");
}
printf ("%s\n", array[3]);
实现此目的的一种简单方法是将换行符添加到分隔符中:
char *p = strtok (c, ":\n");
...
p = strtok (NULL, ":\n");
或者您可以在之前删除它(删除最后一个字符,即使它不是 '\n'
):
if(c[0])
{
c[strlen(c)-1] = '[=11=]';
}
因此,当编写此代码并显示它带有行分隔符“\n”的最后一个标记时,我该如何将其删除?
while( fgets( c, MAX_viagens, f) != NULL ) {
int i = 0;
char *p = strtok (c, ":");
char *array[6];
while (p != NULL){
array[i++] = p;
p = strtok (NULL, ":");
}
printf ("%s\n", array[3]);
实现此目的的一种简单方法是将换行符添加到分隔符中:
char *p = strtok (c, ":\n");
...
p = strtok (NULL, ":\n");
或者您可以在之前删除它(删除最后一个字符,即使它不是 '\n'
):
if(c[0])
{
c[strlen(c)-1] = '[=11=]';
}