加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – for循环不运行

发布时间:2020-12-16 09:41:13 所属栏目:百科 来源:网络整理
导读:我想出了一个我认为是一个笨拙(尽管标准)问题的混乱解决方案: 对于给定的用户输入,反转单词的字母 例如: This is a standard test 变 sihT si a dradnats tset 并不是 tset dradnats a si sihT 事情的核心是这段代码 while (!iscntrl(user_input[x])) // q
我想出了一个我认为是一个笨拙(尽管标准)问题的混乱解决方案:
对于给定的用户输入,反转单词的字母

例如:

This is a standard test

sihT si a dradnats tset

并不是

tset dradnats a si sihT

事情的核心是这段代码

while (!iscntrl(user_input[x])) // quit when new line is read
      {
        restart:
        x++;
        puts("first level test");
        if (user_input[x]==' ')
            {
            puts("second level test");
            for (i=x; user_input[i]!=' '; --i)
                {               
                reverse_words[k]=user_input[i];
                k++;
                puts("third level test");
                goto restart;
                }
            }
        }

(是的,我知道,那里有一个goto:/)

但是循环的第三级永远不会被触及.

据推测,(i = x; user_input [i]!=”; – i)作为for循环参数存在完全错误?

在第一个循环开始之前,x,i和k都被初始化为整数== 0.

解决方法

那么,你的情况与此相矛盾:

if (user_input[x]==' ')
            {
            puts("second level test");
            for (i=x; user_input[i]!=' '; --i)

只有在user_input [x]为空格时才输入,但只要它不等于空格就会循环.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读