需要帮助理解C ++中有效的C字符串操作

时间:2016-11-29 06:59:26

标签: c++ arrays string

我被问到关于叮咬的任务的问题。问的问题是: 鉴于声明:char myString[16]; 以下哪项陈述有效?如果语句无效,请提供正确的语法。

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’;

我已经能够按如下方式编译其中几个部分:

/*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; 
   }

我认为'g'是无效的,因为我认为你不能使用赋值运算符,但是我把它编译好了。任何人都可以解释一下吗?

2 个答案:

答案 0 :(得分:2)

char myString[16];是一个数组。 myString[6] = 't';将字符't'分配给该数组的第六个索引。这是C ++中的有效操作。

答案 1 :(得分:1)

您正在使用std::string在代码中为字符串操作,std::string 可变。因此,您可以使用基本操作(例如在作业中)更改字符串的某些部分。我建议你阅读文档或这个答案:https://stackoverflow.com/a/2916394/1867076

另外,您也可以找到一些示例来帮助您:http://www.cplusplus.com/forum/beginner/821/

如果这不能解答您的问题,请通知我。