2016-03-05 2 views
0

Так что в принципе мне нужно заменить первую цифру «температуры», если ее «1», либо «2», либо «0». я не добрался до нулевой части кода, но я просто застрял на первой функции замены. по какой причине я все время получаю сообщение об ошибке, указывающее, что theres «не соответствует функции-члену для вызова« заменить »». не знаю, что я могу делать неправильно. Я изменил введенный пользователем int temp на строку «sTemp» и смог определить, является ли первый символ строки фактически 1 или нет. Но снова получить ошибку при замене.Заменить функцию не работает?

#include <iostream> 
#include <string> 
#include <sstream> 
using namespace std; 

int main() { 
    int temP; 
    string sTemp; 
    stringstream ss; 


    cout << "Enter the temperature desired: " << endl; 
    cin >> temP; 

    ss << temP; 
    ss >> sTemp; 

    if (sTemp[0] == '1') 
     sTemp.replace(0, 1, '2'); 


    return 0; 
    } 
+0

Я очень сомневаюсь, что проблема в том, что функция в стандартной библиотеке C++ терпит неудачу в ее основных функциях, о чем говорит ваш вопрос, но если это то, что вы подозреваете, вы должны указать, какой компилятор вы используете. – Ben

+0

хорошо вы видите что-то не так с кодом? я понятия не имею, к какой проблеме я просто указывал ошибку, которую я дал. Но я бегу Mac с Марсом затмения. –

+0

Возможно, я собираюсь сделать это неправильно? он также говорит, что я не могу изменить char на постоянный символ. ПОМОГИ ПОЖАЛУЙСТА!!! –

ответ

1

'char' отличается от "string" в C++. Двойные кавычки обозначают char[], а одинарные кавычки обозначают char. Другими словами, вам нужно предоставить строку функции.

Заменить одинарные кавычки двойными кавычками.

+0

omg как глупо меня. спасибо –

+0

@KyleMathewJoeckel Не забудьте проверить галочку, чтобы принять ответ. – VermillionAzure

Смежные вопросы