1
#include<stdio.h>
int main(){
char str1[]={"abc"};
// 3
printf("%d",strlen(str1));
char str2[]={'a','b','c'};
// 长度不能确定
printf("%d",strlen(str2));
char str3[10]={'a','b','c'};
// 3
printf("%d",strlen(str3));
// 字符串常量
char *str4 = "abc";
// 3 长度不包含 '\0' 本身
printf("%d",strlen(str4));
}
2 比较字符串 s 和 字符串 t 的大小,若 s 大于 t,则返回一个正值;若 s 等于 t,则返回 0;否则返回一个负值。
#include<stdio.h>
/**
* s>t,返回正值;s=t,返回0;否则返回负值
*/
comp(char *s, char *t)
{
for(;*s==*t;s++,t++)
// *s==*t才执行到这,若*s=='\0',表示*t=='\0'
if(*s=='\0')
return 0;
// *s != *t 到这步
return (*s-*t);
}
int main()
{
char *s="ab";
char *t="abc";
int a = comp(s, t);
printf("%d",a);
}
3 复制文件内容到另一个文件
#include<stdio.h>
int main()
{
FILE *fp1,*fp2;
fp1=fopen("/Users/vincent/Desktop/file1.txt","r");
fp2=fopen("/Users/vincent/Desktop/file2.txt","w");
while(!feof(fp1))
// 输出到屏幕
putchar(fgetc(fp1));
// 使文件位置标记指向文件开头
rewind(fp1);
while(!feof(fp1))
// 把字符写到fp2指向的文件中
fputc(fgetc(fp1),fp2);
fclose(fp1);
fclose(fp2);
}
4
#include<stdio.h>
func(int a)
{
static int x=10;
int y=1;
// 13
x+=a;
// 4
a++;
//2
y++;
// 19
return (x+y+a);
}
int main()
{
int k=3;
while (k<8)
printf("%d\t", func(k++));
printf("\n");
}
执行结果:
5
#include<stdio.h>
typedef struct
{
// 8*2=16
long x[2];
// 4*4=16
int y[4];
// 8
char z[8];
}MYTYPE;
int main()
{
MYTYPE a;
// 输出 40
printf("%d\n",sizeof(a));
}
6
#include<stdio.h>
#define ADD(a)(a)+(a)
int main()
{
int x=4,y=6,z=7;
//(4+6)+(4+6)*7=80
int w=ADD(x+y)*z;
// 输出 80
printf("%d\n",w);
}