c语言的数组和字符串

  今天来说一说c语言的数组和字符串,为什么说这个呢,因为最近搞c语言碰到了些问题,今天就简单谈一谈我所碰到的问题。

  首先看一下结构体和函数,如图所示

                  

然后要求用户输入姓名,电话号码,类型和电子邮箱,用户可以循环输入,这里出现了第一个问题。因为用户循环输入之后要退出,所以我再循环的时候设置了一个条件,while(s->name!='q');这里s是结构体类型,如果用户输入字母q,就退出。乍一看,这语句没毛病,我然后开心的去调试一下,调试的结果就是我弄了一个死循环,按"q"不会退出。我不死心,我很自信,我写的这个没bug。于是我在scanf函数后面加了一个printf,就是我每输入一次,就直接把我所输入的内容打印出来。继续测试,输入q之后,打印的是q,没错,但还是个死循环,也就是说,while(s->name!='q');条件不成立。我懵了,打印出来的明明就是q,但循环就是不能退出,想了很久没想出来,索性就不做了,休息了好几天,然后就去做网站了。

  几天之后回来重新看一看,还是觉得自己写的没bug,那就换一个判断循环的条件吧,在函数体内设置一个char flag,也让用户输入q退出。由于隔的有点久,我忘记了这里出了什么错,如果我没记错的话,这可能是c语言的一个bug,就是当外部函数使用结构体,让用户进行输出的时候,它会自动跳过外部函数自己定义变量的输入。什么意思呢,我举个例子,结构体还是上面的结构体,函数自己定义,如图所示

猜你喜欢

转载自www.cnblogs.com/liubenwei/p/9086645.html