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里调试运行到最后出现异常,但是结果正确
有谁知道的麻烦告诉我一声~/可怜
相关文章推荐
- 【c语言】编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。
- 【c语言】编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数
- 【C语言】实现一个函数,可以左旋字符串中的k个字符。
- C语言实现输入一个字符串后打印出该字符串中字符的所有排列
- 【C语言】编写一个函数reverse_string(char * string)(递归实现),将参数字符串中的字符反向排列,不能使用C函数库中的字符串操作函数。
- C语言:实现一个函数,可以左旋字符串中的k个字符。
- C语言 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。
- C语言字符切割函数的实现——不需要自己指定分配多少个字符串分组
- C语言strcspn()函数:检索字符串s1开头连续有几个字符都不含字符串s2中的字符
- C语言 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。
- C语言:编写reverse_string(char * string)(递归实现)函数,将参数字符串中的字符反向排列
- 【C语言】【笔试题】【面试题】实现一个函数,可以左旋字符串中的k个字符
- C语言 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列
- 【C语言】编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。
- 【C语言】实现一个函数,可以左旋字符串中的K个字符
- 【C语言】【笔试题】【面试题】实现一个函数,可以左旋字符串中的k个字符
- C语言:编写reverse_string(char * string)(递归实现)函数,将参数字符串中的字符反向排列
- 【C语言】【笔试题】【面试题】实现一个函数,可以左旋字符串中的k个字符
- C语言:实现一个函数,可以左旋字符串中的k个字符。
- 打印字符频度直方图--C语言实现