嘿! 我被卡在一個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