c语言编写一段代码输入一个字符串,判断出现过一次的字符(区分大小写),输出这样的字符个数
时间: 2023-08-31 08:36:16 浏览: 118
获取字符在字符串中出现的次数
### 回答1:
在C语言中,可以使用以下代码来实现:#include <stdio.h>
#include <string.h>
int main()
{
char s[100];
int count=0;
printf("请输入一个字符串:\n");
scanf("%s",s);
int len=strlen(s);
for(int i=0;i<len;i++){
int flag=1;
for(int j=0;j<len;j++){
if(i!=j&&s[i]==s[j]){
flag=0;
break;
}
}
if(flag==1){
count++;
}
}
printf("出现过一次的字符的个数:%d\n",count);
return 0;
}
### 回答2:
要实现输入一个字符串,判断出现过一次的字符并输出个数的代码,可以使用C语言的字符数组和循环结构来实现。
具体的代码如下所示:
```c
#include <stdio.h>
#include <stdbool.h>
int main() {
char str[100];
int count = 0;
bool isUnique;
printf("请输入字符串:");
scanf("%s", str);
for (int i = 0; str[i] != '\0'; i++) { // 遍历字符串中的每个字符
isUnique = true;
for (int j = 0; j < i; j++) {
if (str[i] == str[j] || str[i] == str[j] + 32 || str[i] == str[j] - 32) { // 判断是否出现过一次,区分大小写
isUnique = false;
break;
}
}
if (isUnique) {
count++; // 每次遍历到出现过一次的字符时,计数器加1
}
}
printf("出现过一次的字符个数为:%d\n", count);
return 0;
}
```
运行该代码,程序会提示输入一个字符串,并根据输入的字符串判断其中出现过一次的字符个数并输出结果。
注意:上述代码中使用了`scanf`函数,该函数读取字符串时需保证输入的字符串长度不超过数组的长度减1,否则会出现数组越界的问题。
### 回答3:
```c
#include <stdio.h>
int main() {
char str[100];
int freq[256] = {0}; // 初始频率都为0
printf("请输入一个字符串: ");
scanf("%s", str);
// 统计字符频率
int i = 0;
while (str[i] != '\0') {
freq[str[i]]++;
i++;
}
// 输出只出现过一次的字符
int count = 0;
for (i = 0; i < 256; i++) {
if (freq[i] == 1) {
printf("%c ", i);
count++;
}
}
printf("\n出现过一次的字符个数为: %d\n", count);
return 0;
}
```
上述代码使用一个大小为256的整型数组freq来记录各个字符出现的频率。初始化时,所有元素都被初始化为0。然后遍历输入的字符串,对每个字符的位置所对应的频率进行自增操作。最后,再次遍历整型数组freq,如果某个字符的频率为1,则说明该字符只出现过一次,输出该字符,并将计数器count加一。最后输出count的值,即出现过一次的字符个数。
阅读全文