鱼C论坛

 找回密码
 立即注册
查看: 1420|回复: 12

[已解决]c语言,字符串输入到数组的问题,求解

[复制链接]
发表于 2020-11-30 18:55:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 傾小靈 于 2020-11-30 19:00 编辑
#include <stdio.h>
#include <string.h>
int bisearch(int num)
{
        int j = 0,i =0;
        char array[10];
                scanf("%s",&array);//输入字符串,用for循环把字符串中的空格省略
                for(i; i <= strlen(array) - 1; i++)
                {
                        if(array[i] != ' ')//在实际操作中输入空格,但数组array中没有空格' '的存储
                                {
                                        array[j] = array[i];
                                        j++;
                                }
                }
                if(num != strlen(array))
                {
                        printf("error");
                        return 0;
                }
}
int main()
{
        bisearch(2);
        system("pause");
        return 0;
}

救救孩子吧,谢谢
最佳答案
2020-11-30 19:49:22
本帖最后由 jackz007 于 2020-11-30 19:51 编辑
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
        char c                                                   ;
        for(; (c = getchar()) != '\n' ;) if(c != ' ') putchar(c) ;
        putchar('\n')                                            ;
        system("pause")                                          ;
}
        编译、运行实况:
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
Hello World !
HelloWorld!
请按任意键继续. . .

D:\00.Excise\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-30 19:13:06 | 显示全部楼层
啥需求额。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-30 19:19:32 | 显示全部楼层
北冰羊 发表于 2020-11-30 19:13
啥需求额。。。。

就是输入一段带有空格的字符串,然后能将空格忽略后输出。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-30 19:49:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2020-11-30 19:51 编辑
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
        char c                                                   ;
        for(; (c = getchar()) != '\n' ;) if(c != ' ') putchar(c) ;
        putchar('\n')                                            ;
        system("pause")                                          ;
}
        编译、运行实况:
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
Hello World !
HelloWorld!
请按任意键继续. . .

D:\00.Excise\C>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-30 19:57:30 | 显示全部楼层
jackz007 发表于 2020-11-30 19:49
编译、运行实况:

好简洁,学习了
for (; (c = getchar()) != '\n';) if (c != ' ') putchar(c);
这个循环怎么跑的能帮解释下吗大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-30 20:08:00 | 显示全部楼层
jackz007 发表于 2020-11-30 19:49
编译、运行实况:

这也太腻害了吧,谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-30 20:12:07 | 显示全部楼层
jackz007 发表于 2020-11-30 19:49
编译、运行实况:

for (; (c = getchar()) != '\n';) if (c != ' ') putchar(c);
这段可以解释一下吗?看不太懂,拜托了大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-30 20:23:36 | 显示全部楼层
本帖最后由 jackz007 于 2020-11-30 20:24 编辑
傾小靈 发表于 2020-11-30 20:12
for (; (c = getchar()) != '\n';) if (c != ' ') putchar(c);
这段可以解释一下吗?看不太懂,拜托了大 ...


       for 循环括号里都有两个分号,分号前面是循环执行前要执行的语句,可以有多个,用逗号分隔即可,两个分号之间是一个布尔表达式,每次循环开始前,先检查表达式的值,如果是真就会继续循环,否则,就会立即结束循环。第二个分号后面的语句是每次循环完成后需要执行的语句,也是可以有多个语句,用逗号分开就可以。
       在本例中,只用到了 for 循环的布尔表达式的部分,这部分就是判断用户按下的是否是换行符,如果不是,就继续循环,循环体内只有一个条件判断,就是判断这个不是换行符的字符是不是空格,如果不是就打印输出,否则,就什么也不做。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-11-30 20:45:00 | 显示全部楼层
jackz007 发表于 2020-11-30 20:23
for 循环括号里都有两个分号,分号前面是循环执行前要执行的语句,可以有多个,用逗号分隔即可 ...

为啥不用 while ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-30 21:20:03 | 显示全部楼层

      没什么特别的原因,个人癖好而已。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-1 15:56:10 | 显示全部楼层

你不感觉用for 结构更紧凑,简洁吗?代码行数更少。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-1 19:25:06 | 显示全部楼层
王大锤123 发表于 2020-12-1 15:56
你不感觉用for 结构更紧凑,简洁吗?代码行数更少。

没感觉出来呢。不如你自己看一看?
for (; (c = getchar()) != '\n';) if (c != ' ') putchar(c);
while (c = getchar() != '\n') if (c != ' ') putchar(c);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-3 11:04:42 From FishC Mobile | 显示全部楼层
永恒的蓝色梦想 发表于 2020-12-1 19:25
没感觉出来呢。不如你自己看一看?

打扰了大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 12:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表