POJ 5470 去除C程式中的注釋

2021-10-14 04:22:45 字數 2315 閱讀 6163

描述

c程式的注釋用/*...*/來表示。請寫乙個程式,將輸入的c程式源**中的注釋去掉,輸出去掉注釋之後的源**。

用於測試的c**保證符合語法,不使用c++的//注釋語法。

注意,c語言不允許出現巢狀注釋。具體來說,對於/*/**/"*/",如果不允許巢狀注釋,那麼它表示字串"*/";如果允許巢狀注釋,它表示乙個引號"。

還請注意,字串**現的注釋符/*屬於字串的一部分,注釋**現的雙引號"屬於注釋的一部分。

輸入符合語法的c**文字檔案。**每行不超過200個字元。

輸出去掉注釋後的c**。要求只能去掉注釋,不可以做其他的修改,比如調整縮排,去除注釋之外的換行符等。

樣例輸入

#include 

#include

#include

/*hash search:

hash function: division method;

handling collisions: open addressing's linear probing.

in this exercise, m is the basic area's length, all keys are non negative integers.*/

#define m 11

int hash(int key)

void init_hash(int* hashtable)

}/*return value:

1:found, *position is the key's index;

0:not found, *position is where to insert the key;

-1:overflow. */

int search_hash(int* hashtable, int key, int* position)

if(-1 == hashtable[h])

h = (h+1) % m;

} *position = -1;

return -1;

}/*return value: 1:inserted, 0:overflow*/

int insert_hash(int* hashtable, int key)

void main()

printf("please input the key to search:\n");

scanf("%d", &key);

i = search_hash(hashtable, key, &j);

if(1 == i)

printf("found!its index is %d\n", j);

else

printf("not found!\n");

}

樣例輸出

#include 

#include

#include

#define m 11

int hash(int key)

void init_hash(int* hashtable)

}int search_hash(int* hashtable, int key, int* position)

if(-1 == hashtable[h])

h = (h+1) % m;

} *position = -1;

return -1;

}int insert_hash(int* hashtable, int key)

void main()

printf("please input the key to search:\n");

scanf("%d", &key);

i = search_hash(hashtable, key, &j);

if(1 == i)

printf("found!its index is %d\n", j);

else

printf("not found!\n");

}

最主要的是注意字串、字元、轉義字元的情況,例如不支援巢狀、以及「」對/**/的遮蔽

例如"a\"/*ccc*/"這種情況。

#include using namespace std;

int main()

int size = res.length();

int idx;

while(idxcout

idx+=2;

}else

}return 0;

}

python可變元素list在程式中的注意事項

在python程式中,列表list的存貯方式與int的存貯方式是不同的,換句話說,python中可變型別的儲存方式與不可變型別的儲存方式是不同的。例如,對於單一的元素,有如下操作時 a 1b a b 5 print a,b print id a id b 列印兩個變數的位址輸出 1 5 140731...

去除字串中的空格 C

思路 不開闢新空間,直接在字串上直接進行操作,把空格用後面的字串填充。解法 除陣列名本身這個指標外,只需建立乙個指標來指向空格後面的字元,將字元賦給空格後,原字元所在位置置為空格,兩個指標同時向後移動一步,繼續迴圈直到 指向字元的指標移動到陣列末尾 即指標指向的值為 0 為止。實現 include ...

C 中如何去除窗體預設的關閉按鈕

很多時候,在winform的設計下,會遇到新建窗體時不需要用到預設的關閉按鈕的情況,而是用另外設定關閉 button或其他控制項來控制窗體的關閉。之前我遇到這個問題時,問了很多朋友,都沒找到方法,vs的窗體屬性裡也沒那一項,在msdn裡也沒有相關的資料。但後來偶然發現,原來辦法是很簡單的,只需要在初...