首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言 OJ 題:統計字符串中不同字符個數

     編輯:程式設計疑難解答

題目

輸入格式:`char str1 [] = "helloworld";` 多組數據。輸出:變量名與不同字符個數(如 `str1 7`)。

解法:頻率陣列

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

int main() {
    char line[200];
    while (fgets(line, sizeof(line), stdin)) {
        // 解析變量名與字符串內容
        char var[50], str[100];
        if (sscanf(line, "char %49s [] = \"%99[^\"]\";", var, str) != 2) continue;

        int freq[256] = {0};
        for (int i = 0; str[i]; i++) freq[(unsigned char)str[i]]++;
        int distinct = 0;
        for (int i = 0; i < 256; i++) if (freq[i]) distinct++;
        printf("%s %d\n", var, distinct);
    }
    return 0;
}

關鍵點

  • 用 `sscanf` 解析固定格式行,`%[^\"]` 讀取雙引號內容。
  • 頻率陣列大小 256 覆蓋 ASCII,統計非零計數即為不同字符數。
  • 處理多組輸入直到 EOF。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved