我正在尝试从记录中删除最后一个逗号。我使用 strrchr() 查找记录中最后一次出现的“,”并将其设置为空终止。由于某种原因,它没有找到最后一次出现的逗号并给出“分段错误 11”错误。
void buildAssemblyRecord(char asmRecord[], const char* data)
{
char* record = asmRecord;
record += sprintf(record, "dc.b\t");
int i = 0;
for(i = 0; i < strlen(data); i++)
{
record += sprintf(record, "$%.2X, ", data[i]);
}
//Remove trailing comma
char* whereComma = strrchr(record, ',');
if(whereComma != NULL)
{
*whereComma = '\0';
}
}
从理论上讲,这应该可以完美地工作,因为我一直使用这种方法和常规的旧 strchr 从 fgets 输入中删除换行符。
谁能让我知道发生了什么事?