2016-11-29 3 views
1

Мне задали вопрос о назначении укусов. Заданный вопрос: С учетом декларации: char myString[16]; Какое из следующих утверждений действительно? Если оператор недействителен, укажите правильный синтаксис.Нужна помощь в понимании действительных операций C-строк в C++

a. strcpy(myString, “Hello the world”); 
b. strlen(myString); 
c. myString = “Marylane”; 
d. cin.getline(myString, 80); 
e. cout << myString; 
f. if (myString >= “Nice day”) 
    cout << myString; 
g. myString[6] = ‘t’; 

The Мне удалось собрать некоторые из этих разделов следующим образом:

/*b.*/ int len; 
len = strlen(myString); 

/*c.*/ strcpy(myString, “Hello the world”); 

/*f.*/ int strTest; 
strTest = strcmp(myString, "Nice day"); 

if (strTest < 0) 
    cout << myString << endl; 
else 
    { 
    cout << "No Dice" << endl; 
    } 

Я предположил, «г» будет недействителен, потому что я думал, что вы не могли бы использовать операторы присваивания, но я получил его компилировать. Может ли это объяснить?

+0

Почему вы не сможете использовать оператор присваивания? В этом случае вы просто присваиваете необработанное значение ячейке памяти. – jtbandes

+2

Вы не можете назначить массив, но вы можете назначить один элемент в массиве (если только он не является массивом). –

+0

Что бы вы считали правильным способом установить седьмой символ в строке на 't'? –

ответ

2

char myString[16]; - это массив. myString[6] = 't'; присваивает знак 't' шестому индексу этого массива. Это действительная операция в C++.

1

Вы используете std::string, чтобы сделать операции для ваших строк в коде, и std::string является изменяемыми. Таким образом, вы можете изменить некоторые части своей строки с помощью основных операций, например, в вашем задании. Я хотел бы предложить вам прочитать либо документацию или этот ответ: https://stackoverflow.com/a/2916394/1867076

Кроме того, вы можете найти некоторые примеры, которые помогут вам в здесь: http://www.cplusplus.com/forum/beginner/821/

Пожалуйста, сообщите мне, если это не дает ответа на свой вопрос.

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