我正在做一件作業,需要我從一段彙編語言中刪除空白以及分號後的註釋。例如mov %a,0x01 ; blah blah blah
。我希望能夠在分號之前將所有字符存儲在數組中並打印出來。任何想法如何做,因爲我是一個C noob。存儲從fgetc獲得的字符
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main(int argc, char *argv[]) {
char ch;
int i;
//char line[] = "mov %a,0x01 ; system call number (sys_exit)\n";
char label[100];
char *infilename = argv[1];
int length = strlen(line);
FILE *infile = fopen(infilename, "rb");
printf(" ");
while (1) {
ch = fgetc(infile);
if (ch == EOF)
break;
if (isspace(ch) == 0) {
printf("%c", ch);
}
}
fclose(infile);
return 0;
}
實際上沒有必要存儲字符,你可以決定是否需要打印或不馬上。 – Jester
@Jester你可能是對的,但在作業方面,通常需要和需求之間存在差異。 – mah
您也想刪除'%a,0x01'和';'之間的空格。但是將'mov'和'%a,0x01'之間的空格限制在一個空格內。 –