首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

字符串跟字符串函数

2012-08-29 
字符串和字符串函数字符输入输出getchar()putchar()?chgetchar()putchar(ch)?????字符串函数字符串输

字符串和字符串函数

字符输入输出

getchar();

putchar();

?

ch=getchar();putchar(ch)
?

?

?

?

?

字符串函数

字符串输入

?

创建存储空间 :接受字符串输入首先需要创建一个空间来存放输入的字符串。

?

char * name;scanf("%s",name);
?

?

上述的用法可能会导致程序异常终止。

?

使用字符串数组 可以避免上述问题

?

char name[81];scanf("%s",name);

?

?

?

gets()函数:get string函数,读取字符串直至一个换行符 '\n',回车会导致换行符的产生。读取换行符之前的所有字符然后加上一个空字符'\0',然后把这个字符串交给调用它的程序。

gets()函数构造 :

?

char * gets(char * s){...return (s);}

?

gets()返回的指针和传递给它的是同一个指针。输入字符串只有一个备份,它作为函数参数传递过来的地址中;gets()函数可能有2个返回值,如果一切顺利,它返回的是读入字符串的地址。若是有错误,它返回的是一个空地址,叫做空指针。

?

gets()缺点:它不检查预留存储区是否能够容纳实际输入的数据,多出的字符溢出到相邻的内存区。

?

fgets()可以指定最大的读入字符数,为文件i/o设计。

?

fgets(char *ptr,int size,char *input)

?

?size来说明最大读入字符数,会读取size-1个有效字符。

input来指定说明读取那一个文件;从键盘读取数据时,可以使用stdin作为参数,接受键盘输入。fgets()函数会把换行符存储到字符串中,所以每次显示的时候都会显示换行符。

?

?

scanf()函数:获取单词而不是获取字符串;scanf()使用2种机制来决定输入结束,字符串从遇到的第一个非空白字符开始,如果使用%s,字符串读到下一个空白字符(但是不包括这个空白字符);如果指定了宽度如%10s,该函数会读入10个字符或者遇到空白字符,二者中先满足的就终止。

?

?

?

?

字符串显示

puts():给出字符串参数的地址,显示字符串时会自动地在其后面添加一个换行符。puts(字符数组)会输出字符数组内容,但是由于没有'\0',他会一直输出下去,直至找到一个'\0';

?

fputs():面向文件的版本。需要第二个参数来说明要写的文件,可以使用stdout作为参数来进行输出显示,同时fputs()不会自动添加换行符。

?

?

gets()丢掉输入里面的换行符 ?puts():添加换行符

fgets()存储输入中的换行符 ? fputs()不为输出添加换行符

?

?

?

?

?

自定义字符串输入输出函数:

?

?

主要是利用getchar()和putchar()来定制输入输出函数?

?

#include<stdio.h>void put1(const char *);intmain(){char p[]="hello my name is billsss";puts(p);printf("___________________\n");put1(p);return 0;}void put1(const char * p){int i=0;while(*p){putchar(*p++);i++;}printf("\n%d",i);}

?

?

?

?

字符串函数:string.h给出了函数原型

?

?

strcmp():用来比较字符串的内容,不是地址 ;同时它比较的是字符串数组中空字符之前的字符,所以可以用来比较不同长度的字符串数组的内容是否相同。

字符不相同的话,该函数返回非零值,若是相同,则返回0值。

热点排行