目录:

一、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. Dreamweaver中打开CodeSmith文件

    电脑环境:Windows2008+Dreamweaver 8英文版本 问题描述:Dreamweaver中默认打开文档时不支持打开CodeSmith模板文件对应的.cst后缀名文件,截图如下: 解决步骤 ...

  2. CSS中的 REM PX EM

    px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的 em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸. ...

  3. gulp使用心得

    本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp.不要怕,它其实很简单,我会分为五步向你介绍gulp并帮助你完成一些惊人的事情.那就直接开始吧. 第一步 ...

  4. jQuery Mobile组件

    一.页面 jQuery Mobile 应用了 HTML5 标准的特性,在结构化的页面中完整的页面结构分为header.content.footer 这三个主要区域. 在body 中插入内容块: < ...

  5. Replace不区分大小写

    private string ReplaceNoCase(string text, string oldValue, string newValue) { return System.Text.Reg ...

  6. 大写String和小写string的区别

    1.string是c#中的类,String是.net Framework的类(在c# IDE中不会显示蓝色) ; 2.c# string映射为.net Framework的String ; 3.如果用 ...

  7. STL模板_十大容器概念

    一.向量(续)1.大小和容量大小:容器中元素的个数.容量:容器中可容纳元素的个数.size_type size (void) const; // 获取大小void resize (size_type ...

  8. [C#参考]细说进程、应用程序域与上下文之间的关系

    原文转载链接:http://www.cnblogs.com/leslies2/archive/2012/03/06/2379235.html Written by:风尘浪子 引言 本文主要是介绍进程( ...

  9. SQL 处理空值

    问题: 在数据库中经常会有为null和''的值的列,在查询的时候,我们需要将它们转化成有效的值. 解决方案: 在emp表中的comm注释有的为null有的为'',在查询的时候 我们希望没有注释的显示为 ...

  10. BaaS with Kinvey and Delphi 10.1 Berlin

    In this article I will show you how to connect yourdesktop and mobile applications to a mobile backe ...