我有一個結構,其中有一個char line[20] = "2022/03/13 11:22:33". 我必須將此字符行格式化為"20220313112233". 我正在嘗試這樣但遇到分段錯誤。
for (int i = 0, j; line[i] != '\0'; i) {
while (! (line[i] >= '0' && line[i] <= '9') && ! (line[i] == '\0')) {
for (j = i; line[j] != '\0'; j)
line[j] = line[j 1];
line[j] = '\0';
}
}
uj5u.com熱心網友回復:
就像評論中指出的那樣,使用一個回圈來完成作業:
#include <ctype.h> // for isdigit()
char line[20] = "2022/03/13 11:22:33";
for (char *ai = line, *zi = line; 1; zi) {
if (isdigit (*zi))
*ai = *zi;
else if ('\0' == *zi) {
*ai = '\0';
break;
}
}
printf ("\n%s\n", line);
uj5u.com熱心網友回復:
線[j] = 線[j 1];
上面的線可能是分段錯誤的原因。(盡管您的代碼在 C 中運行良好)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/442971.html
標籤:C
上一篇:我的代碼運行沒有錯誤,但它只運行代碼的一部分(C語言)
下一篇:更改結構中元素的值
