C语言做题常错的地方总结

  1. 字符串比较不能直接用== ,要用strcmp.
  2. 用strcmp时注意当相等时,返回0,在if语句中为不进入.
  3. 用gets才能读入带空格的字符串,scanf遇到空格,回车,TAB认为输入结束.
  4. 用gets和scanf("%c",&x)时,注意要用getchar()吃掉缓冲区的回车.
  5. 一定要看vim前面的☸提示.
  6. 定义一个指针,要么让它指向某个变量,要么给它动态分配内存.不要直接使用!
  7. 字符数组只有在定义时才能将整个字符串一次性的赋值给它,一旦定义完了,就只能一个字符一个字符的赋值了.例如:
	char str[7];
	str = "hello";  //错误
	//正确
	str[0] = 'a'; str[1] = 'b'; str[2] = 'c';
	str[3] = '1'; str[4] = '2'; str[5] = '3';
  1. 除了字符数组,C语言还支持另外一种表示字符串的方法,就是直接使用一个指针指向字符串,例如:
char *str ;
str = "xxxx"; //正确
或者
char *str = "xxx";
  1. 指针数组的输入操作,需要先动态分配内存给指针.
	char *string[10] = {NULL};

    for(i = 0; i < 10; i++) {
        string[i] = (char *)malloc(sizeof(char)*20);
        scanf("%s", string[i]);
    }
发布了11 篇原创文章 · 获赞 4 · 访问量 612

猜你喜欢

转载自blog.csdn.net/weixin_45626515/article/details/103668971