嘿! 我被卡在一个ANSI C问题,我认为这应该是相当平凡的(至少在任何现代语言中:/)。ANSI C分割字符串
我的脚本的(临时)目标是分割一个包含6个字符(“123:45”)的字符串(“字符数组”),它代表时间戳分钟:秒(对于音频文件,因此可以有120分钟)分为几分钟和几秒钟。
我尝试了几种方法 - 一般寻找“:”和一个硬编码的方法,只是通过索引分割字符串,但似乎没有任何工作。
void _splitstr (char *instr, int index, char *outstr) {
char temp[3];
int i;
int strl = strlen (instr);
if (index == 0) {
for (i = 0; i < 3; ++i) {
if (temp[i] != '\0') {
temp[i] = instr[i];
}
}
} else if (index == 1) {
for (i = 6; i > 3; i--) {
temp[i] = instr[i];
}
}
strcpy (outstr, temp);
}
另一个“有趣”的事情是,char [3]的字符串长度是6或9,实际上从来没有3.这是什么问题?
功课?如果是,请告诉我们。 – pmg 2011-04-20 16:11:18
你的代码尝试将3个字符放入'temp'(它可以容纳),然后在“string”函数中使用'temp'。一个字符串需要以空字节结尾。你的'temp'没有空字节的空字节。 – pmg 2011-04-20 16:13:10