【问题标题】:What does str[i]!='\0' mean?str[i]!='\0' 是什么意思?
【发布时间】:2020-11-26 08:06:29
【问题描述】:

这是代码:

for (int i = 0; str[i]!='\0'; ++i)

这是我上网的完整代码:

#include<iostream>
#include<string.h>
using namespace std;
int main ()
{
    char str[50];
    int v = 0, c = 0, n = 0, s = 0;
    cout << "Enter a string : ";
    gets(str);

//The line
    for (int i = 0; str[i]!='\0'; ++i)
    {
        if (str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u' || str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' || str[i] == 'U')
        {
            ++v;
        }
        else if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z'))
        {
            ++c;
        }
        else if (str[i] >= '0' && str[i] <= '9')
        {
            ++n;
        }
        else
        {
            ++s;
        }
    }
    cout << "Number of vowels : " << v;
    cout << "\nNumber of consonants : " << c;
    cout << "\nNumber of numbers :" << n;
    cout << "\nNumber of special characters : " << s;
    return 0;
}

【问题讨论】:

  • '\0'是零符号,用于表示c-strings中字符串的结束
  • 你知道str[i]是什么意思吗?你知道!= 是什么意思吗?你知道'\0' 是什么意思吗?问题是什么?

标签: c++ string for-loop


【解决方案1】:

\0 是零字符。在 C++ 中,它用于指示字符串的终止

【讨论】:

  • 那么你想说的是直到数组没有字符的循环?即如果输入是'apple',str[4] = 'e'并且由于str[5] = 0(空/NULL),停止循环?
  • @AveralVerma 是的,完全正确
【解决方案2】:

if (str[i] != '\0') 表示“如果不在字符串末尾”

C 字符串(char 数组)中的最后一个字符是 null ('\0') 值。

【讨论】:

    【解决方案3】:

    str[i]!='\0' 是什么意思?

    != 是不等式运算符。当操作数相等时它产生假,否则产生真。 str[i]'\0' 是此表达式中的操作数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-12
      • 2015-10-08
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      相关资源
      最近更新 更多