A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 等风继续吹 中级黑马   /  2015-5-21 18:16  /  1471 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

给字符串数组赋值的适合,会用空格键或者逗号或者TAB 键隔开,但是这些键都被scanf接收了, 怎么样解决这个问题,

9 个回复

倒序浏览
  1. /*
  2. 1.功能:输入一个8位字符串然后再输出到屏幕上;
  3. 2:如果输入的不是8位则提醒输入8位字符串。
  4. */
  5. #include<stdio.h>
  6. int main()
  7. {
  8.     char a[9];//定义一个9位字符型数组最后一个是放'\0'
  9.    
  10.     int count=0;//定义count记录输入字符串的字符个数
  11.     do
  12.     {
  13.         printf("请输入一个8位字符串:\n");//提示用户输入
  14.         scanf("%s",a);                 //接收用户输入
  15.         while(a[count]!='\0')          //判断数组元素个数
  16.         {
  17.             count++;
  18.         }
  19.     }
  20.     while(count!=8);
  21.     printf("您输入的是:%s\n",a);        //输出字符串
  22.     return 0;
  23. }
复制代码
回复 使用道具 举报
空格什么的本来也是字符,所以你可以一个字符串一个字符串的赋值。
回复 使用道具 举报

这是给字符数组输入,我说的是给字符串数组赋值.字符串数组的话  比如说 abc  和 edf   这2个 你怎么输出
回复 使用道具 举报
mony 发表于 2015-5-21 21:37
空格什么的本来也是字符,所以你可以一个字符串一个字符串的赋值。

一个一个的太麻烦了,如果有要求 输入多个字符串呢
回复 使用道具 举报
等风继续吹 发表于 2015-5-21 22:31
一个一个的太麻烦了,如果有要求 输入多个字符串呢

用循环啊,效果和你想要的一样啊
回复 使用道具 举报
等风继续吹 发表于 2015-5-21 22:30
这是给字符数组输入,我说的是给字符串数组赋值.字符串数组的话  比如说 abc  和 edf   这2个 你怎么输出 ...

你可以连续使用scanf()用来接收多余的间隔符号  这个我是初学也不太懂
回复 使用道具 举报
支持一下  呵呵
回复 使用道具 举报
chensc 金牌黑马 2015-5-23 09:38:36
9#
学习学习!
回复 使用道具 举报
while (c = getchar() != '\n')
....
...
..
.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马