Hướng dẫn count character in string c++ - đếm ký tự trong chuỗi C++

Giải trình

Trong chương trình này, chúng ta cần đếm số lượng ký tự có trong chuỗi.

Để đếm số lượng ký tự có trong chuỗi, chúng tôi sẽ lặp lại qua chuỗi và đếm các ký tự. Trong ví dụ trên, tổng số ký tự có trong chuỗi là 19.

Thuật toán

  1. Xác định một chuỗi.
  2. Xác định và khởi tạo số lượng biến thành 0.
  3. Lặp lại qua chuỗi cho đến khi kết thúc và cho mỗi ký tự ngoại trừ khoảng trắng, tăng số lượng 1.
  4. Để tránh đếm các khoảng trống, hãy kiểm tra điều kiện, tức là chuỗi [i]! = ''.

Dung dịch

Python

Output:

 Total number of characters in a string: 19

C

Output:

Total number of characters in a string: 19

Java

Output:

Total number of characters in a string: 19

C#

Output:

Total number of characters in a string: 19

PHP

Output:

 Total number of characters in a string: 19

Chủ đề tiếp theo##

Mỗi khi bạn chạy mã này bé Dijkstra khóc :)

  1
  2
  3
  4 #include <ctype.h>
  5 #include <stdio.h>
  6 #include <stdlib.h>
  7 #include <string.h>
  8
  9
 10 size_t bytewise_pop_count(
 11     unsigned char * bp, size_t l
 12 ) {
 13     if ( (bp) && (l) ) {
 14         return bytewise_pop_count(bp+1, l-1) + (bp[0] ? 1 : 0);
 15     }
 16     return 0;
 17 }
 18
 19 void mercilessly_complement_bytes(
 20     unsigned char * bp, size_t l
 21 ) {
 22 /*
 23     transform
 24         0 -> 1
 25         !0 -> 0
 26 */
 27     if ( (bp) && (l) ) {
 28         bp[0] = bp[0] ? 0 : 1;
 29         mercilessly_complement_bytes(bp+1, l-1);
 30     }
 31 }
 32
 33 void xor_bytes(
 34     unsigned char * bp1, unsigned char * bp2, size_t l
 35 ) {
 36     /* stores result in bp2 */
 37     if ( (bp1) && (bp2) && (l) ) {
 38         bp2[0] ^= bp1[0];
 39         xor_bytes(bp1+1, bp2+1, l-1);
 40     }
 41 }
 42
 43
 44 int main(int argc, char * * argv) {
 45     char c;
 46     size_t count;
 47     size_t l;
 48     char * string;
 49     char * t;
 50
 51     if (argc < 3) {
 52         fprintf(stderr,
 53             "\n"
 54             "==> not enough arguments -- need char and string\n"
 55             "\n"
 56         );
 57         return EXIT_FAILURE;
 58     }
 59
 60     c = argv[1][0];
 61     string = argv[2];
 62
 63     if ( l = strlen(string) ) {
 64         t = malloc(l);
 65         memset(t, c, l);
 66         xor_bytes(string, t, l);
 67         mercilessly_complement_bytes(t, l);
 68         count = bytewise_pop_count(t, l);
 69         free(t);
 70     } else {
 71         count = 0;
 72     }
 73
 74     if ( isprint(c) ) {
 75         printf(
 76             "\n"
 77             "==> occurences of char ``%c'' in string ``%s'': %zu\n"
 78             "\n"
 79             , c, string ? string : "<NULL>", count
 80         );
 81     } else {
 82         printf(
 83             "\n"
 84             "==> occurences of char ``%hhu'' in string ``%s'': %zu\n"
 85             "\n"
 86             , c, string ? string : "<NULL>", count
 87         );
 88     }
 89     return EXIT_SUCCESS;
 90 }

Trong ví dụ này, bạn sẽ học cách tìm tần số của một ký tự trong một chuỗi.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình C sau:

  • C mảng
  • C chuỗi lập trình

Tìm tần số của một ký tự

#include <stdio.h>
int main() {
    char str[1000], ch;
    int count = 0;

    printf("Enter a string: ");
    fgets(str, sizeof(str), stdin);

    printf("Enter a character to find its frequency: ");
    scanf("%c", &ch);

    for (int i = 0; str[i] != '\0'; ++i) {
        if (ch == str[i])
            ++count;
    }

    printf("Frequency of %c = %d", ch, count);
    return 0;
}

Đầu ra

Enter a string: This website is awesome.
Enter a character to find its frequency: e
Frequency of e = 4

Trong chương trình này, chuỗi được nhập bởi người dùng được lưu trữ trong STR.

Sau đó, người dùng được yêu cầu nhập nhân vật có tần số được tìm thấy. Điều này được lưu trữ trong biến ch.

Sau đó, một vòng lặp for được sử dụng để lặp lại các ký tự của chuỗi. Trong mỗi lần lặp, nếu ký tự trong chuỗi bằng CH, số lượng được tăng thêm 1.

Cuối cùng, tần số được lưu trữ trong biến số được in.

Lưu ý: Chương trình này có tính nhạy cảm với trường hợp, nó xử lý các phiên bản chữ hoa và chữ thường của cùng một bảng chữ cái như các ký tự & nbsp; This program is case-sensitive i.e. it treats uppercase and lowercase versions of the same alphabet as different characters.

Chức năng nào được sử dụng để đếm số lượng ký tự trong chuỗi trong C?

Như bạn đã biết, cách tốt nhất để tìm độ dài của chuỗi là sử dụng hàm strlen ().strlen() function.

Chúng ta có thể sử dụng đếm trong chuỗi không?

Số lượng () là một hàm tích hợp trong Python.Nó sẽ trả lại cho bạn số lượng của một phần tử nhất định trong danh sách hoặc một chuỗi.Trong trường hợp của một chuỗi, việc đếm bắt đầu từ đầu chuỗi cho đến khi kết thúc.In the case of a string, the counting begins from the start of the string till the end.