2013-12-15 50 views
0

好吧,所以我想检查数组的值array1是否为空,如果是,则不应将其放入array2。我该怎么做呢?检查一个字符串数组的值是否为空/空C++

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 
+0

你能更详细地解释你想完成什么吗?如果你解释任务的基本目的,你会得到更好的答案。 – 0xbe5077ed

+0

'if(array1.size()> 0)',也许? – 2013-12-15 23:42:41

+0

(但你为什么叫字符串'array1'?...) – 2013-12-15 23:46:00

回答

-1

它看起来像你想要的字符串的empty()方法。你可以扩大你的情况是这样的:

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

显然,这将在array2不过,那里的array1值未复制整个保持不变的(大概是空白)值。如果这不是你想要的,那么你需要保留第二个循环计数器,它将索引array2。每次您实际复制一个值时,它只会增加。

+0

是的,我不希望空数值进入'array2',但你是什么意思第二个循环? – user3105207

+1

第二个循环**计数器**(即同一循环内的另一个索引变量)。目前,你总是在两个数组中访问索引'i'。如果你想避免在'array2'中留下空白,你需要使用一个单独的计数器(例如称为'j')对其进行索引:'array2 [j] = array1 [i];' –

0

听起来像你想std::copy_if。我不确定你想要什么条件。用英文描述C++函数.empty(),但是你的C++代码实现了一个测试“string contains the substring result[1]”。 std::copy_if可以同时使用。

相关问题