【问题标题】:Check to see if a string array value is null/empty C++检查字符串数组值是否为空/空 C++
【发布时间】:2013-12-15 23:40:11
【问题描述】:

好的,所以我想检查数组的值array1 是否为空,如果是,则不应将其放入array2。我该怎么做?

    for (int i =0; i < 70549; i ++)
        {
            std::size_t found = array1[i].find(result[1]);

            if (found!=std::string::npos)

                array2[i] = array1[i];              
        }   
    cout 

【问题讨论】:

  • 您能更详细地解释您要完成的工作吗?如果你解释了任务的基本目的,你会得到更好的答案。
  • if (array1.size() &gt; 0),也许?
  • (但你为什么叫字符串array1?...)
  • stackoverflow.com/questions/483337/… 我希望这可能会有所帮助

标签: c++ arrays string


【解决方案1】:

听起来你想要std::copy_if。我不确定你想要什么条件。在英语中,您描述了 C++ 函数 .empty(),但您的 C++ 代码实现了一个测试“字符串包含子字符串 result[1]”。 std::copy_if 可以同时使用两者。

【讨论】:

    【解决方案2】:

    看起来你想要字符串的empty() 方法。您可以像这样扩展您的条件:

    if (!array1[i].empty() && found != std::string::npos)
        array2[i] = array1[i];
    

    显然,array2 中的值将保持不变(可能为空白),array1 值不会被复制。如果这不是您想要的,那么您需要保留第二个循环计数器,它将索引array2。它只会在您每次实际复制值时递增。

    【讨论】:

    • 是的,我不希望空值进入array2,但是第二个循环是什么意思?
    • 第二个循环 counter(即同一循环中的另一个索引变量)。目前,您总是在两个数组中访问索引i。如果您想避免在array2 中留下空白,则需要使用单独的计数器(例如称为j)对其进行索引:array2[j] = array1[i];
    猜你喜欢
    • 2015-06-12
    • 1970-01-01
    • 2015-08-09
    • 2015-06-05
    • 2018-07-19
    • 1970-01-01
    • 2013-03-07
    • 2017-08-19
    相关资源
    最近更新 更多