C语言程序设计:用strcpy比较数组(银行卡密码程序设计),strcpy(复制数组内容)和getchar()(敲键盘字符,统计不想要的字符的个数)

统计从键盘输入一行字符的个数:

 1 //用了getchar() 语句
 2 //这里的
表示回车
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int main()
 4 {
 5     int n = 0;
 6     printf("输入键盘上的字符
");
 7     while (getchar() !='
'){
 8         n++; 
 9     }
10     printf("%d
", n);
11     system("pause");
12     return 0;
13 }


//更改题目:输入一行字符,直到输入9为止,并统计输入的个数


//当你输入一行字符如果第一个就为9的话,那么打印出来i的值结果为0,因为当循环判断到9的时候已经跳出,统计结果就是0
//当你输入了一行字符没有9的时候,键入回车键,仍然打印不出来i的结果,因为while循环一直在循环无法跳出,回车键仍然算做键入的字符,有几个算几个
//直到你打出来9为止,统计输入的字符(包括回车键)的个数,即为i的值

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main (){
 4     int i = 0;
 5     while (getchar() != '9'){
 6         i++;
 7     }
 8     printf("该系列字符不等于9的个数是
%d
", i);
 9     system("pause");
10     return 0;
11 }

1-8加回车键,不等于9的键一共有九个


//再次更改题目:输入一行字符,直到输入9为止,并统计输入的个数
//值得注意的是,换位思考,作为用户的他们并不想看到输入无限个不含9的字符仍然挑不出结果
//这时,我们加一个if语句,当i加到10(输入的10个键仍然不包含'9'的时候),则用break语句跳出,若小于10个数字包含9则退出,并打印不为9的个数。

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int main(){
 4     int i = 0;
 5     while (getchar() != '9'){
 6         i++;
 7         if (i == 10){
 8             printf("输入过多
");
 9             break;
10         }
11     }
12     if (i != 10){
13 
14 
15         printf("该系列字符不等于9的个数是
%d
", i);
16     }
17     system("pause");
18     return 0;
19 }


//字符串内容之间的复制,采用strcpy函数,需要调用<string.h>函数库
//strcpy(a,c)
//顺便再次提一下关于数组中括号里面填数字的问题,例如 arr[]="hi" ,中括号内应该填3或者选择不填,当然不填比较省事
//为什么会多一个数?因为还有个结束符,也要占一个内存空间,但是计算长度(strlen(arr[]))的时候结果还是为2,sizeof时结果为3.
//关于数组这个点需要谨记,比较容易遗忘。

 1 #define _CRT_SECURE_NO_WARNINGS
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 #include<string.h>
 5 int main()
 6 {
 7     char a[] = "hi", c[] = "i am teacher!";
 8     strcpy(c,a);
 9     printf("%s
%s
", a, c);
10     system("pause");
11     return 0;
12 }


//// 设计程序:银行卡密码输入

//用了strcmp函数,调用头文件为<string.h>
//题中不可以写成if(strcmp password==100001),因为c语言不支持这种写法,通过数组比较,当password数组中的值
//小于100001时,==后应为负数,反之大于时为正数
//c语言中strcmp这种比较方法可概括为"查英文词典法"

 1 #define _CRT_SECURE_NO_WARNINGS
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 #include<string.h>
 5 int main(){
 6     int i;
 7     char password[10] = { 0 };
 8     for (i = 1; i <= 3; i++){
 9         printf("请输入密码
");
10 //        字符数组,scanf时候可以不加&
11         scanf("%s", &password);
12         if (strcmp(password, "100001") == 0){
13             printf("输入正确!
");
14             printf("正在登陆...
");
15             break;
16         }
17         else{
18             printf("输入错误,请重试
");
19             if (i == 3){
20                 printf("重复输入过多,退出登录
");
21             }
22         }
23     }
24     system("pause");
25     return 0;
26 }

原文地址:https://www.cnblogs.com/hetaoyuan/p/10076192.html