c - 使用 strtok,最后一个标记带有行分隔符
问题描述
因此,当编写此代码并显示带有行分隔符“\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] = '\0';
}
推荐阅读
- matplotlib - matplotlib 子图不显示作为列表传递给它的确切 x 刻度标签
- javascript - 为什么使用 javascript 下载后不支持文件类型?
- python - 我一直在尝试找到在 csv 文件中按字母顺序实现重复名称和排序名称的方法,但它只是不起作用
- javascript - 更改 innerHTML 会不必要地影响 div 尺寸
- python - 向 django 添加投票功能的最佳方法是什么
- python - 如何修复“ModuleNotFoundError:没有名为‘pandas’的模块”
- html - 如何为重置按钮默认设置新的表单情况
- python - 当键值对深度嵌套时,如何从 Python 中的这个 Json 可读提取中返回特定的键值对?
- python - Flask + Scrapy:如何防止 Heroku 出现 403 错误?
- python - SQL 查询在数据库中运行,但在 python 程序中显示错误