注册 登录
编程论坛 C++教室

请问一道关于统计字符在字符串中出现次数的问题

Townman 发布于 2014-10-25 14:29, 764 次点击
输入一个字符串s,再输入一个字符ch,统计并输出字符ch在字符串s中出现的总次数(0次或1次或……)。

以下答案请问问题出在哪?谢谢指教!
#include<iostream>
using namespace std;
int main()
{
        //n表示输入的字符串str的长度,num表示字符ch出现的个数
        int i, n, num;
    num = 0;
    char *str, ch;
    cin >> str;
    cin >> ch;
    n = strlen(str);
    for (i = 0; i<n; i++)
    {
        if (str[i] == ch)
        {
            num++;
        }
    }
    cout << "字符" << ch << "在字符串" << str << "中出现的次数:" << num << endl;
        system("PAUSE");
    return 0;
}
3 回复
#2
午夜小学仔2014-10-25 15:28
你在解除指针引用前没有将指针初始化为一个确定的地址。
将char *str,ch改为
char *str=new char;
char ch;
就行了
#3
stop12042014-10-25 17:54
你可以用字符串指针指向一个字符串地址.而不能输入字符串.
你可以使用 string str; 来定义一个字符串变量. 变量长度会根据你输入的字符长度去自动调整.
另一种就是限定长度.  char str[50];   这样就可以输入50个字符.
还有一种就是在自己提供的一个内存块里面输入.


程序代码:

//需要用到头文件 "cstring" 或 类 "string"
string str;
cin >> str;   // str[0] 就是第一个字符了


[ 本帖最后由 stop1204 于 2014-10-25 18:07 编辑 ]
#4
yangfrancis2014-10-25 23:00
char*可能没法指向字符串吧?那不是单个字符的变量吗?试一试添加string头文件,用string类定义str可能就行了.另外感觉ch也不像该用指针类型吧?
1