c语言复习
1、输出格式符:
%d/%i (十进制)整数
%f 小数
%e 科学计数
%c 字符
%s 字符串 //oc中用%@,输出对象,字符串也是对象
%p 地址
%o 八进制整数
%x 十六进制整数
2、scanf与gets
scanf只能读取一个数或者字符
比如读取“123” scanf("%d",&a);
读取 “a” scanf("%c",&c);
读取不带空格的字符串“sdjjiafa” scanf("%s",&s);
读取带空格的字符串只能用gets(); “sh ad da” gets(s);
3、字符串常用函数:
char str1[10];
char str2[5];
1)字符串连接函数:strcat(字符数组1,字符数组2)
strcat(str1,str2); // str2连接到str1后面,要注意str1足够长。
2)字符串复制函数:strcpy和strncpy
strcpy(str1,str2);会将str2中的五个元素复制到str1的前五个位置,剩下的不变。
strncpy(str1,str2,2);会将str2中的前两个元素复制到str1中。
3)测量长度:strlen
测试实际长度,不包括'\0'。
4)比较大小函数:strcmp(str1,str2);
如果相等,返回0;
如果str1>str2,返回正整数;
如果str1<str2,返回负整数;
5)转换大小写:strlwr(转换成小写) strupr (转换成大写)
4、指针与字符串注意点:
char *s = "abc"; //定义的常量字符串,内容不可更改。
char s[] = "abc"; //字符数组,内容可以更改。从s[0]开始。
5、指向函数的指针,变量名必须加上小括号。
int sum(int a, int b)
{
}
int main()
{
int *p(int, int); // 错误
int (*p)(int, int); // 正确
p = sum;
int a = p(2,3);
......
}
6、所有预处理指令以#开头,宏变量名以大写或者k开头。可以用#undef取消。
带参数的宏定义比函数效率高,但是定义的参数最好都带小括号。
#define pingfang(a) ((a)*(a)) // 结尾不需要分号
没有小括号的话,把x+y穿进去就悲剧了就成x+y*x+y了。
|