可能是大一刚刚接触编程,学习C语言记得一些批注。先发上来,日后可能会看一下。
while ((ch = getchar() != ‘#’)) //单引号
if (a[i] == ‘F’) //单引号
int A[10], B[10]只能这的,不能int A[k], B[k]
用switch时,记得在每个case;后加break;
关于getchar:“总的来说,只要scanf个gets,之间必须getchar”
前面的scanf()在读取输入时会在缓冲区中留下一个字符’\n’(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误
so在用了printf后用gets,在这之间要加getchar
eg:
scanf("%d", &a[i].number);
getchar();
gets(a[i].name);
scanf("%d", &a[i].age);
getchar();
puts自带\n
结构体……struct……{……}p; 下面的p a[10],必须写数字,不能先写个n,在用n带入
printf()其实就是向stdout中输出,等同于fprintf(stdout,“****”)
数组的两种引用:1.int a[10] 用函数引用时find(a)
2.int* a[10] 用函数引用时find(a[10])
printf(“%5.2f”,x)就是“12.32”,注意小数点也算一位数长
当输入什么停止模板
char str[100];
char c;
int i;
scanf("%s", str);
for (i = 0; (c = str[i]) != '#'; i++)
{
}
根号 sqrt()
while和do-while的while一样
strcmp:比较两个字符串是否相等,eg:char a[] = “abc”
char b[] = “ABC”
if( strcmp(a,b) == 0)……
这比的是ASCll,字符串相等的话这个为0
strlen只能测字符串长度 ,这个还有麻烦的地方,它只能strlen(a) > strlen(b)不能strlen(a) - strlen(b) > 0
sizeof感觉啥也能,而且它的结果要比实际多1
strcpy复制函数
eg:
char dest[50];
char src[50] = {“shhshhs”};
strcpy(dest, src);
如果是单个字符世界用=赋值
strcat连接函数 ,eg:
char str[80] = {"hhhh "};
strcpy(str, "these ");
strcat(str, "strings ");
strcat(str, "are ");
strcat(str, "concatenated.");
puts(str);
// 这个的结果是these strings……,没有hhhh,注意一下
char *a[]和char a[] 他们的存取方式不同,高阶内容
输入一个字符
char str;
// gets(str);
// puts(str);
scanf("%c", &str);
printf("%c", str);
// puts和gets不能用
不能if(0 < a < b)这的写,分开写
scanf里别用\n,人家本来就会控
注意区分字符串与数组,你想输出字符串的全部那就printf(“%s”, ch);如果你想输出其中的的一个字符那就printf(“%c”,ch[2])
输入字符串用scanf的话不加&
关于C指针:太复杂
printf("dadas");
getchar() //printf一串字符后加个getchar()在scanf,前面printf是数字的话不用加
sacnf("%d", a);