【发布时间】:2018-03-14 21:33:57
【问题描述】:
虽然我看到有人为 Python 回答这个问题,但我不知道如何在 C++ 中这样做。请记住,我还在学习。
正如标题应该告诉您的那样,我正在尝试通过 while 循环在 C++ 程序中定义多个变量。具体来说,我试图让它读取字符串的前 8 个字符,然后将它们分配给它们的专用 char 值 c1、c2、c3、c4、c5、c6、c7 和 c8。但是,我想不出一个简单的方法来做到这一点。
例如,它应该看到字符串“FAR OUT!”并将以下字符打印到每个 c1-8 变量:
- F
- 一个
- R
- (空格)
- 哦
- 你
- T
- !
最近的尝试似乎认为我指的是一个名为“c”的变量,而没有考虑到我告诉它取变量检查的值,给它加 1,然后加上那个数字的事实到 c 的末尾,然后取那个输出的变量。
#include <iostream>
#include <string>
using namespace std;
int main()
{
// varaible declaration(s)
char c1;
char c2;
char c3;
char c4;
char c5;
char c6;
char c7;
char c8;
string phonenumber;
int check = 0;
// accept user input
cout << "Phone number in letters: ";
cin >> phonenumber;
// convert string to char
while(check < 8)
{
phonenumber[check] = c(check + 1);
check = check + 1;
}
// start while loop
// program logic and output
cout << endl << c1 << c2 << c3 << c4 << c5 << c6 << c7 << c8 << endl;
}
【问题讨论】:
-
while (condition) { /* loop body */ }没有{和},循环中只包含next 语句。 -
如果你想要的是 8 个
chars,为什么不使用std::array<char, 8> chars;? -
你为什么要这样做?您可以将字符串中的前 8 个字符复制到另一个字符中,或者只使用字符串并直接引用该字符,例如
string_name[index]。 -
嗯,没有。您不能像这样在运行时创建变量名称:
c(check + 1). -
C++ 是一种编译语言,因此您无法在运行时形成变量名。这意味着如果您不使用数组,则无法通过循环来完成。您只需要分别分配每个变量;例如,
phonenumber[0] = c1; phonenumber[1] = c2;等等。但是,您没有为“c”变量分配任何东西,所以这没有任何用处。
标签: c++ string variables while-loop char