一 常用函数:
1.getchar() 与 scanf()
首先他们都是从stdin里读取数据,并不是直接从键盘读取,实际上,当我们从键盘中输入数据时,他们会保存到缓冲区内,并与相应的ascii对应,所以空格,换行符等也会保存到缓冲区中,若用getchar(),则直接读取一个字符(任意),而scanf(),则可以读取任意类型的数据,在一般的数据类型中,比如字符串,整型,实型中,都是以空格,回车,tab等作为结束符,当让也可以通过设置一些标点作为结束符。另外,要注意一些特殊情况上空格回车被当作字符输入进去,对于getchar()尤其要注意。
2.strtok()
首先,要明确这个函数char* strtok (char* str,const char* delimiters );str是要切割的字符串,delimiters是分割符
#include<stdio.h>
#include<string.h>
int main(void)
{
char buf[] = "I2,fasfasd,sfsadfdsa,21";
char*temp = strtok(buf, ",");
while (temp)
{
printf("%s ", temp);
temp = strtok(NULL, ",");
}
return 0;
}
当strtok()在str中发现分割符时,会将该字符改为‘\0’,并返回被分割出子字符串的指针,除了第一次调用需要str,其他时候都不需要参数,因为它把剩余字符串存放到静态变量中去了。而strtok_s,则是存放在buff变量中去。char *strtok_s( char *strToken, const char *strDelimit, char **buf);
3.杂谈:
1. 对于char * data数组进行赋值时,可以通过strcpy(des,src),注意strcpy会copy srcl里的结束符‘\0’,另外还有strncpy,mencpy
char *a = "coda";
char b[30] = "you are the best one.";
char *p;
p = strcpy(b + 8, a);
puts(p); //直接输出coda
2.将字符数组转换成数字,atoi(),或者,自己写一个(char-'0')之类的函数。
3.关于malloc声明中,type malloc(空间大小)
感觉这篇文章写的还不错,推荐一下https://www.cnblogs.com/Commence/p/5785912.html