关于字符串输入的一点问题

昨天在做POJ 题目的时候遇到了一个比较简单的问题,但是发现题目的INPUT永远是快速结题的一个很好的信心增强点。

题目的INPUT如下:

(lll¬ω¬)汗---POJ今天挂了,那我直接说一下把,就是输入分三行:

START

BW BFW, ....巴拉巴拉的一行字符串

END

------------------------------分割一下-------------------------

因为不能用到string类型,所以我设置的是三个字符数组来保存输入的字符串,START 和 END好说就是那样子。关键问题就出在这中间一行中,中间一行有空格啊!!!输入的时候我惯用写的是Scanf("%s",&xx);

  这样我自定义了一个字符串长度计算函数--int strlen1(char a[]){

   char *p;

   int len;

  p=a;

while(*p++!=''){

 len++;

 }

 return len;

 } 

-------------------------------------------------再次分割-----------------------------------------------

然后等我进入这个字符串长度计算函数计算长度的时候发现怎么都是两个,都只能计算空格以前的两个字符,我以为是我的while有问题,怀疑‘’也可以识别空格,一顿血该也不好使。。。于是上网搜索,发现了一个类似的问题提问者,恍然大悟,scnaf只能检测不带空格的字符串的输入,遇到空格就停止了。。。于是改用gets函数:

gets函数原型:

char * gets ( char * str );

于是搞定操蛋的玩意儿。

大多数想法要么平庸,要么更糟糕,这很大程度上因为绝妙的想法难得一见,而且他们还要在我们身边这个充斥了各种恶俗的所谓常识的环境中孕育生长。
原文地址:https://www.cnblogs.com/linux0537/p/6489234.html