数据结构(持续更新...)
字符串
取消scanf保护输入
项目——xxx属性——c/c++——预处理器——预处理定义下箭头——编辑
添加 _CRT_SECURE_NO_WARNINGS
字符数组和字符串
char date[] = "june 14";
char *date = "june 14";
-
两种声明都可以作为字符串。尤其是,任何期望传递字符数组或字符指针的函数都能够接收这两种声明的date作为参数
-
区别:1.声明为数组时,可以任意修改储存在date中的字符。声明为指针时,date指向字符串字面量,不可修 改
2.声明为数组时,date时数组名,声明为指针时,date为变量,可以指向其他字符串;
读写字符串
区分空白字符,空字符,空格符,制表符
-
空白字符:空白字符(whitespace)指的是任意dao多个基本空白字符(包括空格、制表符\t、回车换行符\n)的连续组合。
-
空字符(注意,不叫空白字符)是指'\0',或者是字符的编码值为0的字符
1.输出字符串
char str = "Are we having funny yet";
printf("%s",str);
put(str)//自动换行
2.读入字符串
scanf("%s",str);//读入字符后,只输入第一个空白字符之前的字符串
get(str);//在换行符处停止
字符串库函数
-
strcpy
char *strcpy(char *s1,char *s2);//将s2复制给s1
-
strlen
char *strlen(const char *s);//返回s长度
-
strcat
char *strcat(char *s1,const char *s2);//拼接s1,s2
int main() {
char *a;
gets(a);//使用未初始化变量a
printf("%s", a);
}
宏定义
例题
/*利用牛顿迭代法计算方程3x³-2x²-5=0在1附近的根,要求精确到1e-5,牛顿迭代公式x=x-f(x)/f'(x)。*/
dijkstra
//dijkstra
/*
数据
6 9
1 2 1
1 3 12
2 3 9
2 4 3
3 5 5
4 3 4
4 5 13
4 6 15
5 6 4
结果:0 1 8 4 13 17*/