计算字符串长度

来源:互联网 发布:java 泛型 多继承 编辑:程序博客网 时间:2024/06/05 02:06
  在linux下使用gets()会有警告,形式如下:warning: the `gets' function is dangerous and should not be used.所以需要使用fgets()。由于linux下gets函数没有指定输入字符的大小,如果输入字符大于定义的数组长度时,就会发生内存越界问题。而用fgets函数则可以根据定义数组的长度自动截断字符,而消除一些安全隐患。
fgets函数原型:fgets(char *s,int size,File *stream);
例如:fgets(src,100,stdin);
            fputs(src,100,stdout);       //src是函数名,100是总长度,stdin和stdout为标准输入和输出。
#include <stdio.h>/*int main(){    int count = 0;char *a = "hello!";while(*a != '\0')    {    a++;count++;}printf("length=%d\n",count);            printf("length=%d\n",strlen(a));   //使用strlenreturn 0;}*/int main(){ int i = 0;int count = 0;    char str[20] = {0};printf("Please input a string:\n");    //gets(str);fgets(str,20,stdin);              //fgets输入字符串for(i = 0; i < 20 ; i++){    if(str[i] != '\0'){    count++;}else{    break;}}printf("length=%d\n",count);return 0;}

0 0