阶段练习1
1.题目要求:
请写一个程序,读入一个行的字符串(可能包含空格),输出这个字符串中字符的数量
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(){
char str[100] = {0};
scanf_s("%s",str,100);//开辟的空间大小要足够大
printf("%s\n",str);
return 0;
}
上面的程序有问题,有什么问题?我们会发现,这怎么不能输出中间带空格的字符串,于是就有了下面的做法:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(){
char str[100] = {0};
scanf_s("%[^\n]s",str,100);//字符匹配集
//^ 除了的意思
//[^\n] 除了空格之外,全部输出
printf("%s\n",str);
return 0;
}
这个问题解决了,那么接下来还有一个问题,如何循环输入字符串并使其输出呢?
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(){
char str[100] = { 0 };
while (scanf_s("%[^\n]s", str, 100) != -1){
getchar();//这行很重要 没有这行 会死循环
printf("%s\n",str);
}
return 0;
}
2.写出下面的输出结果
printf("%d\n",strlen("abcdef"));//6
// \62 被解析成一个转义字符
printf("%d\n",strlen("c:\test\628\test.c"));//16
3.思考下面问题
#include <stdio.h>
int main() {
//问题1:在屏幕上打印一个单引号',怎么做?
//问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
printf("%c\n",'\'');
printf("%s\n","\"");
return 0;
}