字符(串)

vs下关闭安全警告#define _CRT_SECURE_NO_WARINGS 
#pragma warning (disable : 4996) 


math.h
double pow (double n,double m) 计算n的m次方
double sqrt(double n) 计算根号n

scanf()参数是地址是因为要修改参数的值,必须传进去地址
以数组定义的字符串可以修改其中的字符,以指针定义的字符串不能修改其中的字符。 
除了初始化能对字符数组=字符串的形式(数组名代表的数组地址不能修改),其他地方用strcpy();字符指针则可以任意=字符串(相当于指向常量区的另一个字符常量)。

转义字符是因为有些字符无法用键盘上的字符来表示,如换行,因此用转义字符来代替表示。如终结符‘\0’代表内存中实际存储的0. 
输入的数据实际上是保存在一个缓冲区中,按enter键,程序中的一个个输入函数才会来取数据 

一个字符数组a[len],  最多只能存储len-1个字符信息,最后一个是‘\0’。 

printf参数的不同本质上是对内存01序列的不同表达形式,字节数,编码方法
 
单字符:  getchar()   ,  putchar()
多格式:scanf() ,  printf();      把空格和回车当作输入结束。
字符串:gets(),puts()(  会自动打印个换行);只把回车当输入结束,因此  可以接收带空格的字符串
以上都不安全,当输入内容可能大于接收的长度。 
即使  输入内容可能大于接收的长度,会根据缓冲长度截断(后面也就丢失了),因为缓冲长度告诉了程序数组的最大长度(缓存长度)
如果缓冲长度>字符数组长度,相当于告诉程序一个错误的信息,也会溢出。 
fgets(缓存字符数组,  缓冲长度,文件指针或者stdin) 
fputs( const char *str, FILE *stream );//  不会默认打印个换行
int fscanf( FILE *stream, const char *format, ... );//从文件中读取作为输入 
 int fprintf( FILE *stream, const char *format, ... ); //打印到文件中 
char name[20] = "Mary"; 
    FILE *out; 
    out = fopen( "output.txt", "w" ); 
    if( out != NULL ) 
      fprintf( out, "Hello %s\n", name ); 


得到格式化的字符串 
int sprintf( char *buffer, const char *format, ... );不是输出到屏幕而是  输出到字符串。  可完成atoi的相反功能。 
从格式化的字符串中提取数据 
int sscanf( const char *buffer, const char *format, ... ); 
int  =atoi(字符串) 
float =atof  (字符串)

strcat(字符数组,字符串) 往字符数组后面追加字符串(也可能溢出) 
strncat(  字符数组,字符串,  字符数组剩余量) 
字符比较==即可 
strcmp()字符串比较 
int strncmp( const char *str1, const char *str2, size_t count ) 比较  前count个字符是否相同。 
char *strcpy( char *to, const char *from );将前者的内容与后者相同 
char *strncpy( char *to, const char *from, size_t count ) 将前者的  前count个字符的内容与后者相同,后面的不变。 
char *strchr( const char *str,‘ch’ );查找字符,返回char的地址,否则返回null 
char *strstr( const char *str1, “字符串”)查找字符串;返回字符串的第一个字符的地址 
buf =strtok(s,’_’)    
while(){ 
   printf(“%s\n”,buf); 
   buf=strtok(null,”_”); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值