嘿!我被困在一个ANSI C问题上,我认为这应该是微不足道的(至少在任何现代语言中都是这样:/)。
我的脚本的(临时)目标是将代表时间戳分钟:秒(对于音频文件,因此可以有 120 分钟)的 6 个字符(“123:45”)的字符串(字符数组)拆分为分钟和几秒钟。
我尝试了几种方法——一种是寻找“:”的通用方法,另一种是硬编码的,只是通过索引分割字符串,但似乎没有一种方法有效。
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。这有什么问题?