1.一次读取长字符,并一个一个显示 ASCII 码
#include <stdio.h>
#define MAX_STRING_LENGTH 65535 // 最大字符串长度
int main(){
char s[MAX_STRING_LENGTH];
printf("请输入长度小于 %d 的任意字符:",MAX_STRING_LENGTH);
scanf("%s",s); // 读取字符串。
for(int i = 0; s[i]; i++){
printf("%c的ASCII:%d\t",s[i],s[i]);
}
}
问题:
s[i]
:循环条件部分使用 s[i]
作为判断条件。在每次循环迭代开始之前,会检查 s[i]
是否为真值(非零)。这里 s[i]
表示数组 s
中索引为 i
的元素。这段代码使用 for
循环来遍历字符串数组 s
中的每个字符,并且循环会在遇到字符串的结束符 \0
时终止。
scanf("%s",s); 在C语言中,数组名本身就表示数组的首地址。因此,在使用 scanf
函数读取字符串时,不需要显式地取地址,直接使用数组名作为参数即可。
2.三元运算符的应用
#include <stdio.h>
int main(){
char c;
printf("请输入一个字符:");
scanf("%c",&c);
( (c>='a' && c<='z') || (c>='A' && c<='Z')) ? printf("%c是字母",c) : printf("%c不是字母",c);
return 0;
}
((c>='a' && c<='z') || (c>='A' && c<='Z')) ? printf("%c是字母",c) : printf("%c不是字母",c);
3.关于用输入控制循环(用于机械控制)
#include <stdio.h>
int main(void)
{
float x;
printf("请输入数字:(输入q退出)");
int i=0;
float status;
float sum=0;
float avg=0;
status=scanf("%f", &x);
while ( status==1 ) {
sum+=x;
printf("请输入数字:(输入q退出)");
status=scanf("%f", &x);
i++;
}
avg=sum/(i);
printf("%.2f",avg);
return 0;
}
通过临时变量status来控制。
4.结构体
struct data
{
int day int month;
int year
}time1,time2;
data为结构体名。
- 定义结构体类型的同时定义结构体变量
- time1.day 调用结构体
- http://t.csdnimg.cn/Uxpr2(内有详细用法)