欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言注意事项

程序员文章站 2022-07-07 10:39:16
...

C语言注意事项

计算数组大小:sizeof(str) / sizeof( str[0] )【数组str的存储空间大小 / 数组第一个元素所占的字节数 】【char-1,int-4,double-8】

函数调用:int sum( int a[ ], int n )或者 int sum( int *a, int n )
sum(str,8);

二维数组初始化时,可以省略第一维长度,但不可以省略第二维长度

C语言规定:常量字符串会自动包含空字符 ‘\0’,所以可以遍历数组到str[i] != ‘\0’ 为止。
while(c=str[i] != ‘\0’){……}

scanf() 遇到分隔符(空格符、换行符、制表符etc)就会停止读入,同时将‘\0’ 存入数组作为参数末尾标志。
所以为了解决字符串的输入,c语言用 gets(str) / puts(str) 作为字符串输入输出函数,其包含在<string.h>中。

getchar()和putchar()的应用:
int getchar(void) : 读取用户以键盘输入的单个字符,返回字符的ASCII码。【多于一个字符则只接收第一个】
int putchar(int ch):向终端输出一个字符【ch为0-127的数,否则不是ASCII值】
while( (str[i++] = getchar() !=’\n’ )){……}

字符串几个处理函数:
strcpy(字符数组,字符串); char str[50]; strcpy(str,“C Programmer”);
strlen(字符串):返回字符串的有效字符数(空字符除外)【!= sizeof(str) 】
strcat(字符数组,字符串):字符串拼接
strcmp(字符串1,字符串2):int 【0,==;>0,str1>str2;<0,str1<str2】

指针
& 取址运算符;
*间接访问符
int *p,m=3;
p = &m; 取出变量m的存储指针给p
printf("%d",*p);取出指针变量所指向的内存单元值

动态分配内存:
void *malloc(size_t size); 申请分配内存
void free(void *p); 释放所占的内存
char *p;
p = (char *)malloc(30);
free(p);

文件的打开与关闭
FIFE * fopen(const charfilename, const charmode);【参数:文件名,打开方式】
【打开方式:r—只读,w—覆盖写,a—追加内容,[r/w/a]b—以二进制方式操作】
int fclose(FILE *stream); 关闭文件
FILE * fp;
fp = fopen(“1.txt”,“r”); // 文件夹一定要存在,此处文件夹位置为当前目录下,也可为绝对路径
fclose(fp);

读写字符函数:fgetc() 和 fputc() 读单个字符
读写字符串函数:fgets() 和 fputs()
char *fgets( char *str, int num, FILE * stream); // 读入num-1个字符放入数组str中,遇到ENTER、EOF结束。
int fputs(char * str, FILE * stream); //将数组str内容写入流文件中
【EOF—Ctrl+Z表示输入结束】

int main(){
/*
 * 文件的字符串写入和读出 
 */
	FILE *fp1,*fp2;
	char ch[128];
	if((fp1 = fopen("file.txt","r")) == NULL){
		printf("cannot open file!\n");
		exit(0);
	}
	if((fp2 = fopen("file1.txt","w")) == NULL){
			printf("cannot open file1!\n");
			exit(0);
	}
	while( fgets(ch,128,fp1)>0 ){
		fputs(ch,fp2);
		printf("%s",ch);
	}
	fclose(fp1);
	fclose(fp2);
	return 0;
}

相关标签: C语言 c语言