c语言程序设计:用strcpy比较数组(银行卡密码程序设计),strcpy(复制数组内容)和getchar()(敲键盘字符,统计不想要的字符的个数)
统计从键盘输入一行字符的个数:
1 //用了getchar() 语句
2 //这里的\n表示回车
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n = ;
printf("输入键盘上的字符\n");
while (getchar() !='\n'){
n++;
}
printf("%d\n", n);
system("pause");
return ;
}

//更改题目:输入一行字符,直到输入9为止,并统计输入的个数
//当你输入一行字符如果第一个就为9的话,那么打印出来i的值结果为0,因为当循环判断到9的时候已经跳出,统计结果就是0
//当你输入了一行字符没有9的时候,键入回车键,仍然打印不出来i的结果,因为while循环一直在循环无法跳出,回车键仍然算做键入的字符,有几个算几个
//直到你打出来9为止,统计输入的字符(包括回车键)的个数,即为i的值
#include<stdio.h>
#include<stdlib.h>
int main (){
int i = ;
while (getchar() != ''){
i++;
}
printf("该系列字符不等于9的个数是\n%d\n", i);
system("pause");
return ;
}

1-8加回车键,不等于9的键一共有九个
//再次更改题目:输入一行字符,直到输入9为止,并统计输入的个数
//值得注意的是,换位思考,作为用户的他们并不想看到输入无限个不含9的字符仍然挑不出结果
//这时,我们加一个if语句,当i加到10(输入的10个键仍然不包含'9'的时候),则用break语句跳出,若小于10个数字包含9则退出,并打印不为9的个数。
#include<stdio.h>
#include<stdlib.h>
int main(){
int i = ;
while (getchar() != ''){
i++;
if (i == ){
printf("输入过多\n");
break;
}
}
if (i != ){ printf("该系列字符不等于9的个数是\n%d\n", i);
}
system("pause");
return ;
}


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

//// 设计程序:银行卡密码输入
//用了strcmp函数,调用头文件为<string.h>
//题中不可以写成if(strcmp password==100001),因为c语言不支持这种写法,通过数组比较,当password数组中的值
//小于100001时,==后应为负数,反之大于时为正数
//c语言中strcmp这种比较方法可概括为"查英文词典法"
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
int i;
char password[] = { };
for (i = ; i <= ; i++){
printf("请输入密码\n");
// 字符数组,scanf时候可以不加&
scanf("%s", &password);
if (strcmp(password, "") == ){
printf("输入正确!\n");
printf("正在登陆...\n");
break;
}
else{
printf("输入错误,请重试\n");
if (i == ){
printf("重复输入过多,退出登录\n");
}
}
}
system("pause");
return ;
}


c语言程序设计:用strcpy比较数组(银行卡密码程序设计),strcpy(复制数组内容)和getchar()(敲键盘字符,统计不想要的字符的个数)的更多相关文章
- C语言中的函数、数组与指针
1.函数:当程序很小的时候,我们可以使用一个main函数就能搞定,但当程序变大的时候,就超出了人的大脑承受范围,逻辑不清了,这时候就需要把一个大程序分成许多小的模块来组织,于是就出现了函数概念: 函 ...
- C语言---数据结构(内建,数组,自定义)
数组是一组有序数据的集合,每个元素都属于同一个数据类型. 一维数组的定义: 类型符 数组名[常量表达式] 常量表达式中,可以包括常量和符号常量,int a[3+5]是合法的.但是不能包含int a[ ...
- C语言学习笔记之成员数组和指针
成员数组和指针是我们c语言中一个非常重要的知识点,记得以前在大学时老师一直要我们做这类的练习了,但是最的还是忘记了,今天来恶补一下. 单看这文章的标题,你可能会觉得好像没什么意思.你先别下这个 ...
- 智能合约语言 Solidity 教程系列5 - 数组介绍
写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 本文前半部分是参考Solidity官方文档(当前最新版本: ...
- 【嵌入式开发】C语言 内存分配 地址 指针 数组 参数 实例解析
. Android源码看的鸭梨大啊, 补一下C语言基础 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/detai ...
- [C] 在 C 语言编程中实现动态数组对象
对于习惯使用高级语言编程的人来说,使用 C 语言编程最头痛的问题之一就是在使用数组需要事先确定数组长度. C 语言本身不提供动态数组这种数据结构,本文将演示如何在 C 语言编程中实现一种对象来作为动态 ...
- Go语言学习笔记八: 数组
Go语言学习笔记八: 数组 数组地球人都知道.所以只说说Go语言的特殊(奇葩)写法. 我一直在想一个人参与了两种语言的设计,但是最后两种语言的语法差异这么大.这是自己否定自己么,为什么不与之前统一一下 ...
- C语言 内存分配 地址 指针 数组 参数 实例解析
. Android源码看的鸭梨大啊, 补一下C语言基础 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/detai ...
- C语言基础 (6) 类型转换,数组与随机数
复习 1.隐式转换 Double a Int b = 1 A = b //编译器自动转换把b转换为double类型后 再给a赋值(隐式转换) 2.强制类型转换 (变量)类型名 Int a = 1 // ...
随机推荐
- Linux Mint 18.2安装后需要进行的设置
自己的笔记本电脑升级到win10后各种不好用,运行速度慢,开关机时间很长,系统也是经常性的更新,外加发热严重.更改设置和更换驱动都没能解决问题.另外感觉在Linux下能够更加专注,所以索性将主系统更换 ...
- MQ测试
2015年8月13日23:14:52 测试RabbitMq ====================== 千兆局域网:send ≍10000/s receive ≍7000/s 百兆局域网:send ...
- ping -l 1000 -t 与ping -t的区别
windows -l 1000的意思是规定发送的包的大小是1000字节如果不加这个参数的话,就发送包默认为32字节还有-t就是一直发送,直到手动停止
- Zabbix3.4服务器的搭建--CentOS7
本教程是目前最简单的Zabbix搭建教程.因为不是编译方式,直接用官方的分发包(rpm)安装. 1.前期准备 安装CentOS 7.4系统后.开启网络功能,其他东西均可不装.切记一定不要配置环境.还有 ...
- Promise里捕捉错误的最佳实践
Promise里的同步部分不需要try catch new Promise((resolve, reject) => { throw new Error('error'); setTimeout ...
- Hibernate 基于主键的一对一关联关系随手记
@Test public void testSave() { Boss boss = new Boss(); boss.setName("A-老板"); Company compa ...
- (二)给Centos配置网络以及使用xshell远程连接Centos
好吧,我对网络协议以及ip配置知识的匮乏,让我在这里折腾了将近一天才搞定.可以说基本上网上遇到的问题我都遇到了.在这里,记下正确的步骤来给Centos配置网络.希望以后少走弯路. 首先我要说明的是,我 ...
- log4j框架logger的继承关系以及使用场景
log4j框架logger的继承关系以及使用场景 log4j日志框架logger是存在继承关系的,我们一般都会在log4j.properties文件中定义log4j.rootLogger.其他所有lo ...
- pycharm 设置字体大写和显示代码行号
打开pycharm,我们看到左边是没有行号显示的. 在工具栏中点击扳手的标志,打开. 找到 Ide-setting ——>Editor ——>Apperance ——> ...
- cv2.resize
import cv2 img = cv2.imread('0_116_99_355_0.jpg') # 方法一: # res = cv2.resize(img,None,fx=2,fy=2,inter ...