首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

OJ題解:Judge Online - HTML特殊字元轉義

     編輯:關於C語言

題目需求

逐行讀取輸入,將 <、>、空格、Tab轉義為對應HTML實體或保持原樣,其餘字元原樣輸出。

轉義對照表

輸入字元輸出
<&lt;
>&gt;
空格空格
Tab&nbsp;&nbsp;&nbsp;&nbsp; (四個空白)

完整原始碼

#include <stdio.h>
#include <string.h>

int main() {
    char string[100];
    while (gets(string) != NULL) {
        int len = strlen(string);
        for (int i = 0; i < len; i++) {
            switch (string[i]) {
                case '<': printf("&lt;"); break;
                case '>': printf("&gt;"); break;
                case ' ':  printf(" "); break;
                case '\t': printf("&nbsp;&nbsp;&nbsp;&nbsp;"); break;
                default:   printf("%c", string[i]);
            }
        }
        printf("\n");
    }
    return 0;
}

注意事項

  • 原代碼中else if(string[i]==' ')出現兩次,第二次疑為處理Tab(\t),此處已修正
  • gets()有緩衝區溢位風險,實務建議用fgets()
  • 輸入長度不超過100,陣列大小足夠
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved