目录:

一、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. ZooKeeper源码阅读(二):客户端

    源代码: http://svn.apache.org/repos/asf/zookeeper/trunk/ 导入eclipse: 在包含build.xml目录下执行ant eclipse将产生.cla ...

  2. Java面试题之四

     十六.运行时异常与一般异常有何异同 Java提供了两类主要的异常:runtime exception和checked exception. 1.checked exception:这种异常也就是我们 ...

  3. 权威指南学习心得-浏览器中的js

    window对象:表示web了浏览器的一个窗口或窗体(winow属性引用自身) 含有以下属性:location包含Location对象,指定当前显示在窗口中URL,允许脚本往窗口里载入新的URL 含有 ...

  4. JavaScript引用类型之Array类型一

    一.简介 除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了.下面就来分析ECMAScript中的数组与其他语言中的数组的异同性: 1.相同点: (1)他们都是数据的有序列 ...

  5. IIS7.0/7.5 MVC3 实现伪静态

    routes.MapRoute(            "Default",            "{controller}/{action}.html/{id}&qu ...

  6. vlan trunk vtp端口聚合

    第一步:端口聚合(两端都需要做相同的操作) 第二步:在服务器端配置为服务器模式 第四步:在服务器端添加vlan 第五步:在两端分别将不同的端口添加到不同的vlan

  7. 在查询用户的权限的时候 使用左外连接 和 access数据库中左外连接

    一般做视图最好是做成左外连接的.而其作用尤其在我们查询用户当前的权限时尤为明显,我们将 权限表即模块表放→角色权限表→角色表→用户角色表→用户表 就这样left outer join 连接起来,这样就 ...

  8. 菜鸟初试水--JQuery基础

    此文仅作入门级文章,望大神们高抬贵手! JQuery: 它是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作. JQuery的用途: ①访问和操作DOM元素: 使用j ...

  9. 机器学习算法实现(R&Python code)

    Machine Learning Algorithms Machine Learning Algorithms (Python and R) 明天考试,今天就来简单写写机器学习的算法 Types Su ...

  10. 《JavaScript+DOM编程艺术》的摘要(三)---图片库实例

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...