gpt4 book ai didi

c++ - 使用指针将文本字符与单个字符进行比较

转载 作者:行者123 更新时间:2023-11-28 00:27:31 25 4
gpt4 key购买 nike

我在将文本字符串与单个字母进行比较并计算字符串中有多少个字母时遇到问题。我只需要比较单个字母与其匹配的大小写,比如字母“z”匹配“z”,但“z”不匹配“Z”。这是我到目前为止得到的:

/**********************************************************************
* compares the letter to each letter in the string of text and counts the
* number of the matching letters
***********************************************************************/
int countLetters(char letter, char * text)
{
int count = 0;

for (char * p = text; *p; p++)
{
if (letter == *p)
{
count++;
}
}

return count;
}

/**********************************************************************
* Prompts the user for a line of input, calls countLetters(), and displays
* the number of letters.
***********************************************************************/
int main()
{
char letter;
char text;
int count = 0;
char * pText;

cout << "Enter a letter: ";
cin >> letter;
cout << "Enter text: ";
cin.ignore(2);
cin >> text;

pText = &text;

count = countLetters(letter, pText);
cout << "Number of '" << letter << "'s: " << count << endl;

return 0;
}

这是我运行代码时的样子:

Enter a letter: z
Enter text: There are no Z's here
Number of 'z's: 1

这是我期望在运行代码时发生的情况:

Enter a letter: z
Enter text: There are no Z's here
Number of 'z's: 0

有什么想法吗?任何帮助将不胜感激。

最佳答案

您没有分配空间来存储 text 中的字符串。因此,您的程序调用了未定义的行为,并且您得到了意想不到的结果。
text 声明为数组或动态分配内存。

关于c++ - 使用指针将文本字符与单个字符进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24252750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com