初始化无法从const char [3]转换为std :: string *

问题描述 投票:0回答:1

我正在研究一个程序,该程序使用函数和指针在用户输入句子后用空格替换逗号。

但是,当我运行程序时,我收到上述错误而另一个错误;

“C ++类型为”const char *“的值不能用于初始化”std :: string *“类型的实体”

有这个程序的麻烦,并想知道这里是否有人可以给我一个正确的方向?

谢谢!

下面是代码:

#include "stdafx.h"
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;




 void comma2blank(string* pString1);
 int main()

{

string* String1 = "  " ;

    cout << "Tell me why you like programming" << endl;
    getline(cin, *String1);

    comma2blank(String1);
    cout << " String 1 without comma is: " << *String1 << endl;

    delete String1;
    system("pause");

 };


 void comma2blank(string* pString1)
 {

pString1->replace(pString1->find(','), 1, 1, ' ');
pString1->replace(pString1->find(','), 1, 1, ' ');



 };
c++ string function pointers error-handling
1个回答
0
投票

您不需要在main()中创建字符串指针。你需要一个完整的字符串对象,你可以将它的地址(一个指针)传递给你的函数,如下所示:

int main()
{
    string String1; // NOT a pointer!

    cout << "Tell me why you like programming" << endl;
    getline(cin, String1);

    comma2blank(&String1); // NOTE: pass by pointer using & (address of)
    cout << " String 1 without comma is: " << String1 << endl;

    // no need to delete anything here

    system("pause");    
};
© www.soinside.com 2019 - 2024. All rights reserved.