获取莫尔斯电码转换器的字符串长度保持循环
Getting string length for morse code convertor keeps looping
正在处理我的第一个编程任务之一,一个文本到莫尔斯(和返回)的转换器,但无论出于什么原因,当我引入一段单词之间有空格的文本时,我的程序会进入无休止的循环并崩溃。有什么想法吗?很抱歉,如果这个描述很糟糕,我仍然在思考编程行话。
这是程序中运行不正常的部分:
{
string user_input;
cout << "----------------------------------------" <<endl
<< "Text to Morse Mode" << endl
<< "Enter text for conversion : "<<endl;
cin >> user_input;
cout << endl << endl << user_input << " converts to : ";
unsigned int str_lenght;
str_lenght=user_input.size();
cout << endl;
for (i=0;i<str_lenght;i++)
{
find_string=0;
while (find_string < stop_string)
{
if (user_input[i]==text[find_string][0])
{
count=1;
cout << morse[find_string] << " ";
break;
}
find_string = find_string+1;
}
}
cout << endl << endl << endl;
if (count==0)
cout << endl << " an error was encountered " << "a" << endl ;
}
stop_string
在我所看到的任何地方都没有定义。为了通过递增来打破循环,您需要定义stop_string
。find_string = find_string+1;
也可以缩短为find_string++
首先,您没有在任何地方定义stop_string变量。首先定义它或使用另一个变量。如果要在此处使用字符串长度,请使用您创建的str_length。其次,如果您想在单词之间输入空格,请使用getline而不是cin。cin分隔空格字符。
相关文章:
- 在循环C++中指定字符串之后,不会打印该字符串
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- C++-字符串是否包含一个带有简单循环的单词
- 在 c++ 中查找字符串中没有循环的数字总和
- 比较两个字符串后卡在无限循环中
- C++ - 使用基于范围的 for 循环将字符值分配给向量中的字符串不会分配值
- 而循环跳过 cin.getline() 对于 C 字符串
- 我正在尝试使用 while 循环从字符串中删除字母,直到没有字母。我在这里做错了什么?
- 如何使用将字符串拆分为 for 循环中的变量的程序
- 是否有可能实现O(N)时间和O(1)空间解决方案,以实现C++中的字符串循环移位
- 循环访问还包含未使用元素的字符串数组
- 循环访问资源字符串表
- C++ - 使用用户输入的字符串数据检查结构字符串数据(无限执行 while 循环)
- 修改向量中的字符串?(不使用循环)
- 试图突破字符串循环
- C++和Java的字符串循环性能比较
- 无法通过字符串循环我的程序以将其从英语翻译成猪拉丁语
- C++ 字符串循环检查相同的单词
- 为什么 javascript 中不使用字符串循环的C++语法?