c - 在这个例子中如何修改我的指针值?
问题描述
我试图沿着我的 char 数组(一个字符串)移动我的 char 指针,它不起作用,我不明白为什么。
我的 char 数组看起来像这样"5,true,-12,..."
这是我的代码:
local_length = get_param_length(jump_next_param(param));
- 本地长度是参数的长度(不带逗号)
- param 是我要解析的字符串
以我给出的示例为例,在我写的行之前,local_length = 1(5 长度)。在我写的那行之后,local_length = 4(真实长度)。
但是参数仍然指向 5 我希望它指向 t
这是 jump_next_param() 的代码:
static char* jump_next_param(char *param){
uint32_t jump_length = get_param_length(param);
param += jump_length + 1;
return param;}
解决方案
你在这里真正遇到的是一个 XY 问题。您需要帮助从逗号分隔的列表中解析单个项目。如果您不必担心包含逗号的引号括起来的字符串,则可以使用strchr
:
char *list = "first,second,third,fourth,fifth";
char *p = list;
char *q = list;
do
{
p = strchr(q, ',');
printf("%.*s\n", (ptrdiff_t)(p - q), q);
q = p;
p++, q++;
}
while (p != NULL);
推荐阅读
- sql - 在 postgres 中转换时间戳格式
- azure - 从 azure 存储容器下载多个小文件时速度慢、延迟高
- c - 如何使光标向后移动 1 行
- python - 我可以在 Python 中创建类方法来获取此类类型的参数吗?
- python - 有没有办法改变 strptime() 的阈值?
- java - Firebase 身份验证“createUserWithEmailAndPassword”失败“返回 Gms:com.google.firebase.auth.api.internal.zzam@290f989
- java - 带参数的 Java 泛型 - 继承
- javascript - module.export 和获取用户信息
- javascript - sort with id from object
- ios - 使用插入功能时奇怪的tableView动画