c++问题求解,一个for循环为了不存入相同数据。

case 1:
            for(i=0;i<s1;i++)
            {
                if(st1[i]==(char)token)
                    break;
            }
            if(i==s1)
            {
                st1[s1++]=(char)token;
                str4+=' ';
                str4+=token;
            }
            break;

第一次循环后,s1=1,并存入一个,然后读第二个时,i=0,第一个if判断不相同。就直接跳到下一个if判断,我原来想法是for循环结束再下一个if判断,怎么解决?

汪汪一只猫
浏览 761回答 1
1回答

UYOU

问题一:阁下的想法和初始想法不符合啊for(i=0;i<s1;i++)&nbsp;{//判断原数组中是否含有相同元素//含有则退出if(st1[i]==(char)token)break;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i==s1)//for循环未经过break,所以&nbsp;i==s1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要求:我原来想法是for循环结束再下一个if判断,怎么解决?额。。增加个标志怎么样?case 1:bool flag =true;for(i=0;i<s1;i++){if(st1[i]==(char)token)flag=false;}if(flag){st1[s1++]=(char)token;str4+=' ';str4+=token;}break;如何
打开App,查看更多内容
随时随地看视频慕课网APP