char a=1,b='1',c=65;
printf("a=%d\n",a); //输出c=1
printf("b=%d\n",b); //输出d=49
printf("c=%c\n",c); //输出A
大小写转化:‘a’-‘A’=32
x+‘a’-‘A’--------大写变小写
x+‘A’-‘a’--------小写变大写
sprintf() 函数的声明:
int sprintf(char *str, const char *format, ...)
sscanf() 函数的声明:
int sscanf(const char *str, const char *format, ...)
eg:
char str[100];
//用法一:取指定长度的字符串
sscanf("12345","%4s",str);
printf("用法一\nstr = %s\n",str); //1234
//用法二:格式化时间
int year,month,day,hour,minute,second;
sscanf("2013/02/13 14:55:34","%d/%d/%d%d:%d:%d",&year,&month,&day,&hour,&minute,&second);
printf("用法二\ntime = %d-%d-%d %d:%d:%d\n",year,month,day,hour,minute,second);//time = 2013-2-13 14:55:34
//用法三:读入字符串
sscanf("12345","%s",str);
printf("用法三\nstr = %s\n",str); //12345
//用法四:%*d 和 %*s 加了星号 (*) 表示跳过此数据不读入. (也就是不把此数据读入参数中)
sscanf("12345acc","%*d%s",str);
printf("用法四\nstr = %s\n",str); //acc
break与continue
break:跳出循环(可以作用在任何地方,常与switch分支结构合用)
continue:跳出循环这一轮剩下的语句进入下一轮(只能运用到循环结构中)
swich case
switch(expression){
case constant-expression :
statement(s);
break; /* 可选的 */
case constant-expression :
statement(s);
break; /* 可选的 */
/* 可以有任意数量的 case 语句 */
default : /* 可选的 */
statement(s);
}
一维数组
int a[8]={0,1,2,3,4,5,6,7};
int a[10]={0};//全为零
int a[10]={[0]=1};//指定初始化,其余为零
int a[10]={1,2,[4]=5,6};//也可以
char c[10]={'c',' ','p','r','o','g','r','a','m'};
char c[10]={"C program"};
char c[10]="C program";
二维数组
//二维数组在初始化的时候可以分行进行初始化
int arr[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
//二维数组也可以进行放在一起进行初始化
int arr[2][3] = { 1, 2, 3, 4, 5, 6 };
//二维数组在初始化的时候可以进行部分初始化
int arr[2][3] = { { 1 }, { 2 } };//1, 0, 0, 2, 0, 0
int arr[2][3] = { 1, 2, 3 };//1, 2, 3, 0,0,0
//二维字符数组
char c[3][8]={{"apple"},{"orange"},{"banana"}};
char c[3][8]={"apple","orange","banana"};
声明与定义
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} book;
初始化
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} book = {"C 语言", "RUNOOB", "编程语言", 123456};
typedef
typedef可以用来为类型取一个新的名字
typedef unsigned char BYTE;
BYTE b1, b2;//在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写
也可以使用 typedef 来为用户自定义的数据类型取一个新的名字。例如,可以对结构体使用 typedef 来定义一个新的数据类型名字,然后使用这个新的数据类型来直接定义结构变量
typedef struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} Book;
int main( )
{
Book book;
................
}
区分:typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。
注意区分数组指针与结构体指针的区别
PTA基础编程题目38道