如何用 C 语言编写一个统计字符串中字母、数字和特殊字符的程序?为此,我们将使用内置函数 isalpha、isdigit 和 ASCII 码。
C 语言统计字符串中的字母、数字和特殊字符示例 1
此 C 程序允许用户输入一个字符串(或字符数组)。然后它将检查字符串中有多少个字母、数字和特殊字符。在此程序中,我们在“Else If”语句中直接使用字母和数字。
#include <stdio.h>
int main()
{
char str[100];
int i, alphabets, digits, special;
i = alphabets = digits = special = 0;
printf("\n Please Enter any String : ");
gets(str);
while (str[i] != '\0')
{
if( (str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z') )
{
alphabets++;
}
else if (str[i] >= '0' && str[i] <= '9')
{
digits++;
}
else
special++;
i++;
}
printf("\n Number of Alphabets in this String = %d", alphabets);
printf("\n Number of Digits in this String = %d", digits);
printf("\n Number of Special Characters in this String = %d", special);
return 0;
}

首先,我们使用While Loop来迭代字符串中的每个字符。
从上面的C Programming截图可以看出:
str[] = Hi@123!
i = 字母 = 数字 = 特殊字符 = 0
While 循环第一次迭代: while (str[ i ] != 0)
条件为 True,因为 str[0] = H。
在 While 循环中,我们使用Else If Statement来检查它是字母、数字还是特殊字符。
if( (str[i] >= ‘a’ && str[i] <= ‘z’) || (str[i] >= ‘A’ && str[i] <= ‘Z’) )
=> if( (H >= ‘a’ && H <= ‘z’) || (H >= ‘A’ && H <= ‘Z’) )
从上面的 if 语句中,H >= ‘A’ && H <= ‘Z’ 条件返回 true。因此,alphabets++
这意味着 alphabets = 1
第二次迭代: while (str[ 1 ] != 0)
条件为 True,因为 str[1] = i。
if( (i >= ‘a’ && i <= ‘z’) || (i >= ‘A’ && i <= ‘Z’) )
从上面的 if 语句中,i >= ‘a’ && i <= ‘z’ 条件返回 true。因此,alphabets++
这意味着 alphabets = 2
第三次迭代: while (str[ 2 ] != 0)
条件为 True,因为 str[2] = @。
if( (@ >= ‘a’ && @ <= ‘z’) || (@ >= ‘A’ && @ <= ‘Z’) ) – 条件失败
else if (@ >= ‘0’ && @ <= ‘9’) – 条件失败
因此,它将执行 Else 块内的语句。因此,special++
这意味着 special = 1
对剩余的迭代执行相同的操作。
C 语言统计字符串中的字母、数字和特殊字符示例 2
在此程序中,我们使用For Loop来迭代字符串中的每个字符。接下来,我们使用 ASCII 值来检查字符串的单个字符是字母、数字还是特殊字符。我建议您参考ASCII Table来理解每个字符的 ASCII 值。
#include <stdio.h>
int main()
{
char str[100];
int i, alphabets, digits, special;
alphabets = digits = special = 0;
printf("\n Please Enter any String : ");
gets(str);
for(i = 0; str[i] != '\0'; i++)
{
if (str[i] >= 48 && str[i] <= 57)
{
digits++;
}
else if( (str[i] >= 65 && str[i] <= 90) || (str[i] >= 97 && str[i] <= 122) )
{
alphabets++;
}
else
special++;
}
printf("\n Number of Alphabets in this String = %d", alphabets);
printf("\n Number of Digits in this String = %d", digits);
printf("\n Number of Special Characters in this String = %d", special);
return 0;
}
Please Enter any String : Hello! 1234! 5World!
Number of Alphabets in this String = 10
Number of Digits in this String = 5
Number of Special Characters in this String = 5
C 语言统计字符串中的字母、数字和特殊字符示例 3
在此示例中,我们使用内置函数isalpha和isdigit来检查给定字符串中的每个字符是字母还是数字。
/* C Program to count Alphabets Digits and Special Characters in a String */
#include <stdio.h>
#include<ctype.h>
int main()
{
char str[100];
int i, alphabets, digits, special;
alphabets = digits = special = 0;
printf("\n Please Enter any String : ");
gets(str);
for(i = 0; str[i] != '\0'; i++)
{
if (isalpha(str[i]))
{
alphabets++;
}
else if(isdigit(str[i]))
{
digits++;
}
else
special++;
}
printf("\n Number of Alphabets in this String = %d", alphabets);
printf("\n Number of Digits in this String = %d", digits);
printf("\n Number of Special Characters in this String = %d", special);
return 0;
}
Please Enter any String : abcd !!@#$ 14789235
Number of Alphabets in this String = 4
Number of Digits in this String = 8
Number of Special Characters in this String = 7
C 语言查找字符串中的字母、数字和特殊字符示例 4
这个用于字母、数字和特殊字符的程序与第一个示例相同,但这次我们使用的是指针。
#include <stdio.h>
int main()
{
char str[100];
char *s = str;
int alphabets, digits, special;
alphabets = digits = special = 0;
printf("\n Please Enter any String : ");
gets(str);
while (*s)
{
if( (*s >= 'a' && *s <= 'z') || (*s >= 'A' && *s <= 'Z') )
{
alphabets++;
}
else if (*s >= '0' && *s <= '9')
{
digits++;
}
else
special++;
s++;
}
printf("\n Number of Alphabets in this String = %d", alphabets);
printf("\n Number of Digits in this String = %d", digits);
printf("\n Number of Special Characters in this String = %d", special);
return 0;
}
Please Enter any String : tutorial1234gateway.org
Number of Alphabets in this String = 18
Number of Digits in this String = 4
Number of Special Characters in this String = 1