不能用C ++写一个字符串

时间:2015-10-17 14:48:26

标签: c++ string

我有下一个功能,我想打印一些用逗号分隔的参数,我的问题是控制台在#34; parametro [i] = linea [i]&#34时没有显示任何内容;在FOR迭代中。 例: 参数1:[]

void funcionSeparadora (string linea){

int numParametros = 1;
string parametro;
for (int unsigned i=0;i<linea.length();i++){

    if (linea[i] == ','){
        cout <<"Parámetro "<<numParametros<<": "<<"["<< parametro <<"]"<< '\n';
        numParametros++;
    }
    else (parametro[i] = linea[i]);
}
}

2 个答案:

答案 0 :(得分:1)

大多数情况下,处理参数填充的方式是错误的。修正版:

example.com/my-product-category/my-product-name

答案 1 :(得分:0)

你错过的点数

  1. 在其他情况下使用大括号
  2. 在for for循环
  3. 中使用size_t代替unsigned in
  4. 初始化具有必要长度的parametro变量
  5. 试试这个

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    void funcionSeparadora(string linea) {
    
        int numParametros = 1;
        string parametro(linea.length(),' ');
        for (size_t i = 0; i < linea.length(); i++) {
    
            if (linea[i] == ',') {
                cout << "Parámetro " << numParametros << ": " << "[" << parametro << "]" << endl;
                numParametros++;
            }
            else { 
                parametro[i] = linea[i];
            }
        }
    }
    
    int main()
    {
        funcionSeparadora("what is this,");
        system("pause");
        return 0;
    }