获取莫尔斯电码转换器的字符串长度保持循环

Getting string length for morse code convertor keeps looping

本文关键字:字符串 循环 转换器 获取      更新时间:2023-10-16

正在处理我的第一个编程任务之一,一个文本到莫尔斯(和返回)的转换器,但无论出于什么原因,当我引入一段单词之间有空格的文本时,我的程序会进入无休止的循环并崩溃。有什么想法吗?很抱歉,如果这个描述很糟糕,我仍然在思考编程行话。

这是程序中运行不正常的部分:

    {
        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_stringfind_string = find_string+1;也可以缩短为find_string++

首先,您没有在任何地方定义stop_string变量。首先定义它或使用另一个变量。如果要在此处使用字符串长度,请使用您创建的str_length。其次,如果您想在单词之间输入空格,请使用getline而不是cin。cin分隔空格字符。