c语言,字符串输入到数组的问题,求解
本帖最后由 傾小靈 于 2020-11-30 19:00 编辑#include <stdio.h>
#include <string.h>
int bisearch(int num)
{
int j = 0,i =0;
char array;
scanf("%s",&array);//输入字符串,用for循环把字符串中的空格省略
for(i; i <= strlen(array) - 1; i++)
{
if(array != ' ')//在实际操作中输入空格,但数组array中没有空格' '的存储
{
array = array;
j++;
}
}
if(num != strlen(array))
{
printf("error");
return 0;
}
}
int main()
{
bisearch(2);
system("pause");
return 0;
}
救救孩子吧,谢谢 啥需求额。。。。 北冰羊 发表于 2020-11-30 19:13
啥需求额。。。。
就是输入一段带有空格的字符串,然后能将空格忽略后输出。 本帖最后由 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> jackz007 发表于 2020-11-30 19:49
编译、运行实况:
好简洁,学习了
for (; (c = getchar()) != '\n';) if (c != ' ') putchar(c);
这个循环怎么跑的能帮解释下吗大佬 jackz007 发表于 2020-11-30 19:49
编译、运行实况:
这也太腻害了吧,谢谢大佬 jackz007 发表于 2020-11-30 19:49
编译、运行实况:
for (; (c = getchar()) != '\n';) if (c != ' ') putchar(c);
这段可以解释一下吗?看不太懂,拜托了大佬 本帖最后由 jackz007 于 2020-11-30 20:24 编辑
傾小靈 发表于 2020-11-30 20:12
for (; (c = getchar()) != '\n';) if (c != ' ') putchar(c);
这段可以解释一下吗?看不太懂,拜托了大 ...
for 循环括号里都有两个分号,分号前面是循环执行前要执行的语句,可以有多个,用逗号分隔即可,两个分号之间是一个布尔表达式,每次循环开始前,先检查表达式的值,如果是真就会继续循环,否则,就会立即结束循环。第二个分号后面的语句是每次循环完成后需要执行的语句,也是可以有多个语句,用逗号分开就可以。
在本例中,只用到了 for 循环的布尔表达式的部分,这部分就是判断用户按下的是否是换行符,如果不是,就继续循环,循环体内只有一个条件判断,就是判断这个不是换行符的字符是不是空格,如果不是就打印输出,否则,就什么也不做。 jackz007 发表于 2020-11-30 20:23
for 循环括号里都有两个分号,分号前面是循环执行前要执行的语句,可以有多个,用逗号分隔即可 ...
为啥不用 while ? 永恒的蓝色梦想 发表于 2020-11-30 20:45
为啥不用 while ?
没什么特别的原因,个人癖好而已。 永恒的蓝色梦想 发表于 2020-11-30 20:45
为啥不用 while ?
你不感觉用for 结构更紧凑,简洁吗?代码行数更少。 王大锤123 发表于 2020-12-1 15:56
你不感觉用for 结构更紧凑,简洁吗?代码行数更少。
没感觉出来呢。不如你自己看一看?for (; (c = getchar()) != '\n';) if (c != ' ') putchar(c);while (c = getchar() != '\n') if (c != ' ') putchar(c); 永恒的蓝色梦想 发表于 2020-12-1 19:25
没感觉出来呢。不如你自己看一看?
打扰了大佬{:10_266:}
页:
[1]