输入一个字符串,统计指定字符的个数。例如:字符串\"abcddcba\",指定字符'c',则统计个数为2。
时间: 2023-04-30 13:00:34 浏览: 78
可以使用循环遍历字符串中的每一个字符,判断是否与指定字符相同,如果相同则计数器加1。最后返回计数器的值即可。
示例代码如下:
```
def count_char(s, c):
count = 0
for i in s:
if i == c:
count += 1
return count
s = "abcddcba"
c = "c"
print(count_char(s, c)) # 输出2
```
相关问题
c语言输入一个字符串,然后该字符串反序连接在本串的后面。 输入格式: 输入一个长度不超过10的字符串。 输出格式: 输出把字符串反序连接在当前串后面后形成的新串。 输入样例: 在这里给出一组输入。例如: ABCD 输出样例: 在这里给出相应的输出。例如: ABCDDCBA
以下是一个用C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[11]; //定义字符串数组
scanf("%s", str); //读入字符串
int length = strlen(str); //获取字符串长度
for (int i = length - 1; i >= 0; i--) { //倒序输出字符串
printf("%c", str[i]);
}
printf("%s\n", str); //再输出原字符串
return 0;
}
```
注意,需要使用 `strlen()` 函数获取字符串长度,并且需要使用 `%s` 格式化符读入字符串,而不是 `%c`。
用C语言编写程序,实现删除某一个字符串中的某一个字符,要求字符串和字符都通过键盘输入。 【输入形式】 第一行输入一个字符串,以回车结束。 第二行输入要删除的字符。 【输出形式】 输出对应的字符串。 【样例输入1】: abcddcba d 【样例输出1】: abccba 【样例输入2】: 1234 5678 9 【样例输出2】: 1234 5678
好的,我会帮你解决这个问题。以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
char c;
int i, j;
// 输入字符串
printf("请输入一个字符串:");
gets(str);
// 输入要删除的字符
printf("请输入要删除的字符:");
scanf("%c", &c);
// 删除字符
for(i = 0, j = 0; str[i] != '\0'; i++)
{
if(str[i] != c)
{
str[j] = str[i];
j++;
}
}
str[j] = '\0';
// 输出结果
printf("删除后的字符串为:%s", str);
return 0;
}
```
代码分析:
1. 定义一个字符数组 `str` 用于存储输入的字符串,假设字符串长度不超过 100。
2. 定义一个字符变量 `c` 用于存储输入的要删除的字符。
3. 使用 `gets()` 函数从键盘输入字符串,该函数可以读取含有空格的字符串。
4. 使用 `scanf()` 函数从键盘输入要删除的字符。
5. 使用循环遍历字符串 `str`,如果该字符不是要删除的字符,则将该字符存储到新的字符串中。
6. 最后在新的字符串的末尾添加一个空字符,表示该字符串的结束。
7. 输出删除后的字符串。
注意事项:
1. 在输入字符串时,要注意使用 `gets()` 函数,因为该函数可以读取含有空格的字符串,而 `scanf()` 函数不能读取含有空格的字符串。
2. 在输入要删除的字符时,要注意使用 `%c` 格式符,并在前面加上一个空格,因为在输入字符串时,按下回车键会将回车符留在输入缓冲区中,而 `%c` 格式符会将回车符当做一个字符读取,从而导致程序出错。加上一个空格可以将回车符从输入缓冲区中清除。
3. 删除字符时,可以使用两个指针 `i` 和 `j` 分别指向原字符串和新字符串的位置,如果 `str[i]` 不等于要删除的字符,则将其存储到 `str[j]` 中,同时将 `j` 加 1,最后在 `str[j]` 处添加一个空字符。
阅读全文