2
好的我有這個程序的另一個問題,我們應該採取.C文件並從中刪除所有的評論,我有它的工作,但程序似乎卡住後,它消除第一條評論。在它刪除第一條評論後,它會停止保存,並且我不知道爲什麼。C編程語言練習1-23
準確書問題:撰寫一個程序,刪除所有C程序的評論。不要忘記正確處理帶引號的字符串和字符常量。
我只寫了這個程序來刪除/ * * /註釋,如果我得到它工作不正常改變它也可以做//註釋。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define MAX_BUFFER 5000
#define SPACE ' '
#define TAB '\t'
#define IN 1
#define OUT 0
/* ********************************************************************** */
int main()
{
char arrayPrimary[MAX_BUFFER];
char arraySecondary[MAX_BUFFER];
int i, c, j, size, string;
for(i = 0;(c = getchar()) != EOF && c != '\0'; i++)
{
arrayPrimary[i] = c;
}
arrayPrimary[i] = '\0';
size = i;
string = OUT;
/* ********************************************************************** */
for(i = 0, j = 0; i < size; i++, j++)
{
if((arrayPrimary[i] == '/' && arrayPrimary[i + 1] == '*'))
{
printf("IN\n");
string = IN;
}
else if(string == OUT)
{
arraySecondary[j] = arrayPrimary[i];
}
else if(string == IN && arrayPrimary[i] == '*' && arrayPrimary[i + 1] == '/')
{
printf("OUT\n");
i++;
string = OUT;
}
}
arraySecondary[j] = '\0';
printf("%s", arraySecondary);
return 0;
}
如果我輸入這個Codefile我得到。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define MAX_BUFFER 5000
#define SPACE ' '
#define TAB '\t'
#define IN 1
#define OUT 0
謝謝,這似乎解決了它,我甚至沒有意識到我可以使用j ++的方式,再次謝謝你。 – Endon55