您的位置:首页 > 编程语言 > C语言/C++

C语言写函数实现接收n个字符串,将以某个字符为开头的字符串打印出来。

2015-03-22 15:48 387 查看

C语言写函数实现接收n(这里定义3个)个字符串,将以某个字符(这里定义为‘b’)开头的字符串打印出来。

PS:假设用户按要求输入

错误代码:

#include<stdio.h>
#define MAX 10
#define STRLEN 5 //没有包含结尾符
int main(int argc, char* argv[])
{
char buf[MAX][STRLEN];
int i; //没有赋初值
unsigned int n = MAX-1;
for(;i<MAX;i++)
{
printf("\nInput a string with 5 character:");
scanf("%s",buf[i]);
}
while (n>=0)
{
if (*buf
='b') //‘==’,等号两边的表达式顺序最好反过来
{
printf("%s",buf
);
}
n--;
}    return 0;
}


这里解释下:因为strlen()计算字符串长度是不包含’/0’的,判断等式是否相等时最好把NULL、字符等写在左边,待判定的变量放在右边,可以避免因为等号少打了一个而错写成赋值语句。

改正之后的代码如下:


#include<stdio.h>
#define MAX 3
#define STRLEN 6 //
int main(int argc, char* argv[])
{
char buf[MAX][STRLEN];
int i=0; //
unsigned int n = MAX-1;
for(;i<MAX;i++)
{
printf("\nInput a string with 5 character:");
scanf("%s",buf[i]);
}
while (n>=0)
{
if ('b'==*buf
) //
{
printf("%s",buf
);    //注意输出的是字符串
}
n--;
}
return 0;
}


但是没想通的是,还有异常,在VC++ 6.0里调试运行到最后出现异常,但是结果正确



有谁知道的麻烦告诉我一声~/可怜
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  define strlen 字符串 c
相关文章推荐