目录:

一、C语言字符串函数库

二、用命令行输入参数

回到顶部

一、C语言字符串函数库

1 #include <string.h>

2 字符串复制

strcpy(参数1,参数2);

参数1:目标字符串位置(复制到哪里)

参数2:源字符串(来源)

3 字符串拼接函数

strcat(参数1,参数2);

参数1:第一个字符串

参数2:第二个字符串

将第一个字符串的内容与第二个字符串的内容拼接在一起,保存在第一个字符串中。

4 字符串长度

strlen(str);

参数为字符串,返回字符串长度,不包含结束符。

5 字符串比较函数

strcmp(参数1,参数2);

根据ASCII码表来比较字符串中每一个字符是否相等,结果为两个字符串的差值,差值为0,字符串相等,否则不相等。

练习:模拟系统登录,提示输入用户名、密码,和数据库匹配,用户名:admin密码:123登录成功,否则登录失败,重新登录,输入错误3次,退出程序。

 #include <stdio.h>
#include <string.h>
#include <stdlib.h> //strcpy字符串复制函数
void test(){
char* str = "hello";
char str2[];
strcpy(str2, str);//字符串复制函数,把str的字符串赋给str2,该函数返回新复制的字符串的首地址
printf("str2:%s\n",str2);
printf("str2 address:%p\n",strcpy(str2, str));
} //strcat字符串拼接函数
void test2(){
char str3[] = {'h','e','l','l','o','\0'};//定义字符串变量
char* str4 = " world";//定义字符串常量
strcat(str3,str4);//这里不能调换位置,因为str4值不能修改
printf("str3:%s\n",str3);
} //strlen字符串长度函数
void test3(){
char str3[] = {'h','e','l','l','o','\0'};
printf("str3 length:%zd\n",strlen(str3));//不包括结束符'\0',strlen参数存放数组名、字符指针名以及字符常量,该函数返回int型整数
} //strcmp字符串比较函数
void test4(){
char* str5 = "A";
char str6[] = {'A','\0'};
int res = strcmp(str5, str6);//相等返回0,不相等返回差值(str5 - str6)
printf("res:%d\n",res);
if (res == ) {//也可以写!res
printf("字符串相等\n");
}else{
printf("字符串不相等");
}
}
int main(int argc, const char * argv[])
{
/*
练习:模拟系统登录,提示输入用户名、密码,和数据库匹配,用户名:admin密码:123登录成功,否则登录失败,重新登录,输入错误3次,退出程序。
*/
char* db_username = "admin\n";
char* db_password = "123\n";
char username[];
char password[];
for (int i = ; i < ; i++) {
printf("输入用户名:\n");
fgets(username, , stdin);
printf("输入密码:\n");
fgets(password, , stdin);
int res_username = strcmp(db_username, username);
int res_password = strcmp(db_password, password); if (res_username == && res_password == ) {
printf("登录成功!欢迎您。\n");
break;
}else{
if (i == ) {
printf("对不起!登录超过三次。\n");
exit();//退出系统
}
printf("登录失败!请重新登录。\n");
}
}
return ;
}

回到顶部

二、用命令行输入参数

1 argc代表命令行的参数个数(包含命令本身)

2 *argv[]代表命令行的参数的值(字符串)(包含命令本身)

3 运行:./a.out  abc  hahaha

 #include <stdio.h>

 int main(int argc, const char * argv[])
{ // insert code here...
printf("argc, %d!\n",argc);
for (int i = ; i < argc; i++) {
printf("argv[%d]:%s\n",i,argv[i]);
}
/*
tarenatekiMac-mini-3:命令行参数 tarena$ cc main.c
tarenatekiMac-mini-3:命令行参数 tarena$ ./a.out
argc, 1!
argv[0]:./a.out
tarenatekiMac-mini-3:命令行参数 tarena$ ./a.out a ccc
argc, 3!
argv[0]:./a.out
argv[1]:a
argv[2]:ccc
tarenatekiMac-mini-3:命令行参数 tarena$
*/
return ;
}

练习:

定义五虎上将,guanyu、zhangfei、zhaoyun、huangzhong、machao,通过命令行方式,输入一个人名,然后判断输出,是否是五虎上将,结果输出到屏幕上。

#include <stdio.h>
#include <string.h> int main(int argc, const char * argv[])
{
char* names[] = {"guanyu","zhangfei","zhaoyun","huangzhong","machao"}; printf("argc, %d!\n",argc);
for (int i = ; i < argc; i++) {
printf("argv[%d]:%s\n",i,argv[i]);
if (strcmp(argv[i],names[]) == || strcmp(argv[i],names[]) == || strcmp(argv[i],names[]) == || strcmp(argv[i],names[]) == || strcmp(argv[i],names[]) == ) {
printf("是:%s\n",argv[i]);
}else{
printf("不是\n");
}
}
return ;
}

13-C语言字符串函数库的更多相关文章

  1. Lua 中的string库(字符串函数库)总结

    (字符串函数库)总结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-11-20我要评论 这篇文章主要介绍了Lua中的string库(字符串函数库)总结,本文讲解了string库 ...

  2. 【C++实现python字符串函数库】strip、lstrip、rstrip方法

    [C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...

  3. 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  4. 【C++实现python字符串函数库】一:分割函数:split、rsplit

    [C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...

  5. C语言字符串函数大全

    C语言字符串函数大全 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include ...

  6. Lua中的字符串函数库

    字符串库中的一些函数是非常简单的: string.len(s)          返回字符串s的长度:string.rep(s, n)      返回重复n次字符串s的串:你使用string.rep( ...

  7. C语言字符串函数例子程序大全 – string相关

    关于字符串函数的应用细则,例子程序 – jerny 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source) ...

  8. C语言开发函数库时利用不透明指针对外隐藏结构体细节

    1 模块化设计要求库接口隐藏实现细节 作为一个函数库来说,尽力降低和其调用方的耦合.是最主要的设计标准. C语言,作为经典"程序=数据结构+算法"的践行者,在实现函数库的时候,必定 ...

  9. [lua]紫猫lua教程-命令宝典-L1-01-09. string字符串函数库

    L1[string]01. ASCII码互转 小知识:字符串处理的几个共同的几点 1.字符串处理函数 字符串索引可以为负数 表示从字符串末尾开始算起 所有字符串处理函数的 字符串索引参数都使用 2.所 ...

随机推荐

  1. as3用鼠标拖动图形拼图——灰常简单的教程

    话说这种效果在课件里面经常用到,鼠标拖动事件,一个运用很频繁的事件,一起学习学习吧 首先SWF贡献给大家看看效果 感觉咋样,原理其实还蛮简单的,做做试试吧 下面来看看源码吧 package { imp ...

  2. 新辰:4G时代怎样利用手机进行移动APP营销?

    未来的时代是4G时代,新辰手机用户的搜索量不在电脑端之下.那么,我们要怎样用手机进行营销呢?手机站点的竞价文章,要怎样去写比較好?手机站点要做专题吗?手机站点的优化思路在哪里?手机的系统不同,在不同的 ...

  3. openstack之nova启动实例过程

    概述: 启动一个实例包含以下步骤: API server:处理用户请求并转发至cloud controller cloud controller:处理计算节点.网络控制.api server 以及sc ...

  4. iWeb峰会见闻

    8.16去参加了iWeb峰会,一大早8点过10分就到了,发现外面已经排起了长队(说明影响力越来越大,关注的人越来越多了.) 此次大会参与的企业也越来越多,当然是有目的而来~ 上午 google商业合作 ...

  5. 在Prefetcher中取消robots.txt的限制

    Robots.txt是一种专门用于搜索引擎网络爬虫的文件,当构造一个网站时,如果作者希望该网站的内容被搜索引擎收录,就可以在网站中创建一个纯文本文件robots.txt,在这个文件中,声明该网站不想被 ...

  6. android退出activity的方式总结(一)

    在android中使用:[activityname].this.finish();  只是退出了activity的堆栈中,要真正的退出程序在手机cpu中的运行,当应用不再使用时,通常需要关闭应用,可以 ...

  7. MATLAB一句总结

    MATLAB使用过程中的一些小总结: 1.sqrt函数的输入参数应为double类型: 2.im2bw把图像转换为二值图像: 3.double类型的图片必须转换为uint8类型后才能用imshow显示 ...

  8. 启动tomcat的时候,服务器暂停到装载mysql驱动文件的原因

    1.使用spring+mybatis,由于mybatis的配置文件中jdbc类型的错误使得,tomcat无法正常启动,在编写mybatis一定确保jdbc类型,java类型正确,jdbc类型要大写! ...

  9. 逻辑(if)、关系、数字、条件运算符

    if语句 if-else if-else  if(a==0){1} else if (a>0){2}  else{3}  特点:1.2.3只有一个括号会被执行  陷阱  1.if(a!=0)  ...

  10. Java中的枚举类型详解

    枚举类型介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义 ...