zoukankan      html  css  js  c++  java
  • 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 }

  • 相关阅读:
    Oracle 11g R2(11.2.0.4.0)+udev搭建RAC
    在 Linux 中用 nmcli 命令绑定多块网卡
    linux 配置聚合连接team(网卡绑定) , systemd 控制
    7.linux目录结构
    6.VMware备份linux操作系统
    5.linux关机和切换运行模式
    4.linux安装
    linux网络配置知识
    3.Virtual Box的安装
    2.vmWare安装
  • 原文地址:https://www.cnblogs.com/hetaoyuan/p/10076192.html
Copyright © 2011-2022 走看看