c语言字符串覆盖函数 c语言输入覆盖

c语言 gets()会不会把原数组的值全部覆盖掉?比如原数组中有1234四个字符,通过gets输入abc,最终

gets得到的是字符串,而字符串是以'\0'结尾的啦。

公司主营业务:成都做网站、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出永顺免费做网站回馈大家。

如:

char a[10];

gets(a);//你输入1234,则a里存储的内容是"1234\0",一共占了5个位置,不要忘了'\0'

gets(a);//这里你输入abc,则a存储的内容是"abc\0\0",看到没有两个\0了,而输出字符串,是遇到\0

//就结束的啦。如果你输入ab,则a存储的内容是"ab\04\0",你可以试着输出a[3],那么它会输出4,

//不信?你可以试一试啦

C语言字符串

代码功能:

1、输入任意行数的内容(如果你想限制最多10行,自己加个变量计数好了)。

2、不想输入时,新行直接回车,会刷新显示统计个数。

#include stdio.h

#include stdlib.h

#include string.h

#include malloc.h

typedef struct strs

{

char str[100];

struct strs *next;

}STRS;

void contWord(char *str);//对字符串大小写字母计数

void intput(STRS **strsHead,STRS **strsTail);//输入字符串,并显示统计结果(每输入完一行回车时,刷新数据)

void prfStrs(STRS *strsHead,int tj);//打印字符串及统计结果

int dCon=0;//大写字母计数

int nCon=0;//数字计数

int main()

{

STRS *strsHead=(STRS *)malloc(sizeof(STRS));

strsHead-next=NULL;

STRS *strsTail=NULL;

intput(strsHead,strsTail);

return 0;

}

void prfStrs(STRS *strsHead,int tj)//tj=1输出统计结果;tj=0不输出统计结果

{

while(strsHead-next!=NULL)

{

printf("%s\n",strsHead-next-str);

strsHead=strsHead-next;

}

if(tj==1)

{

printf("大写字母个数:%d\n",dCon);

printf("数字输入个数:%d\n",nCon);

}

}

void contWord(char *str)

{

int len=strlen(str),i;

for(i=0;ilen;i++)

{

if(str[i]='A'  str[i]='Z')

dCon++;

if(str[i]='0'  str[i]='9')

nCon++;

}

}

void intput(STRS **strsHead,STRS **strsTail)

{

STRS *strsNew;

char c;

while(1)

{

strsNew=(STRS *)malloc(sizeof(STRS));

memset(strsNew-str,0,100);

if(strsNew-str[0]==0)

{

c=0;

c=getchar();

if(c=='\n')

{

system("cls");

prfStrs(*strsHead,1);

break;

}

else

{

strsNew-str[0]=c;

}

}

gets(strsNew-str[1]);

strsNew-next=NULL;

if((*strsHead)-next==NULL)

(*strsHead)-next=strsNew;

else

(*strsTail)-next=strsNew;

*strsTail=strsNew;

contWord(strsNew-str);

}

}

求C语言替换字符串中某个字符的函数

1、C语言中没有提供字符串替换函数,网上能找到的类似函数也只是能替换一个,不能替换全部,工作中却常常要用到这个功能,故实现一个函数。该函数所使用到的相关函数均是自己实现,没有调用库函数。

2、函数代码如下:

/*descript:replace str,返回一个替换以后的字符串,用完之后要free()

success:return 1

error:return 0

BUG:"select * from tab where id=':a' and name =':aa'",this is not support,this function is just simple str_replace ,not support all SQL language

*/

char *replacestr(char *strbuf, char *sstr, char *dstr)

{       char *p,*p1;

int len;

if ((strbuf == NULL)||(sstr == NULL)||(dstr == NULL))

return NULL;

p = strstr(strbuf, sstr);       //返回字符串第一次出现的地址,否则返回NULL

if (p == NULL)  /*not found*/

return NULL;

len = strlen(strbuf) + strlen(dstr) - strlen(sstr);

p1 = malloc(len);

bzero(p1, len);

strncpy(p1, strbuf, p-strbuf);

strcat(p1, dstr);

p += strlen(sstr);

strcat(p1, p);

return p1;

}


文章名称:c语言字符串覆盖函数 c语言输入覆盖
标题URL:http://scyanting.com/article/docpehj.html