文档章节

C Primer Plus 第11章 11.7 ctype.h字符函数和字符串

idreamo
 idreamo
发布于 2016/08/27 06:24
字数 460
阅读 52
收藏 0

第7章“C控制语句 分支和跳转”介绍了ctype.h系列字符相关的函数。这些函数不能被 应用于整个字符串,但是可以被应用于字符串中的个别字符。程序清单11.26定义了一个函数,它把toupper( )函数应用于一个字符串中的每个字符,这样就可以把整个字符串转换成大写。此外,程序还定义了一个使用isputct( )函数计算一个字符串中的标点字符个数的函数。

程序清单11.26  mod_str.c程序

/*mod_str.c 修改一个字符串*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define LIMIT 80
void ToUpper(char *);
int PunctCount(const char *);

int main(void)
{
    char line[LIMIT];

    puts("Please enter a line: ");
    gets(line);
    ToUpper(line);
    puts(line);
    printf("That line has %d punctuation characters.\n",PunctCount(line));
    return 0;
}

void ToUpper(char * str)
{
    while(*str)
    {
        *str=toupper(*str);
        str++;
    }
}

int PunctCount(const char *str)
{
    int ct=0;
    while(*str)
    {
        if(ispunct(*str))
            ct++;
        str++;
    }
    return ct;
}

下面是输出:
Please enter a line:
Me? You talkin' to me? Get outta here!
ME? YOU TALKIN' TO ME? GET OUTTA HERE!
That line has 4 punctuation characters.



循环while(*str)处理str指向的字符串的每个字符,直到遇见空字符。当遇到空字符时,*str的值为0(空字符的编码),即为假,则循环结束。

顺便提一下,cype.h函数通常被作为宏来实现。这些C预处理器指令的作用很像函数,但是有一些重要差别。在第16章 C预处理器和C库 中我们会介绍宏。

接下来,我们讨论main()函数圆括号中的void(11.8)。

© 著作权归作者所有

idreamo
粉丝 18
博文 139
码字总数 224743
作品 0
青岛
产品经理
私信 提问
C Primer Plus 第11章 字符串和字符串函数 11.2 字符串输入

11.2.1 创建存储空间 要做的第一件事是建立一个空间以存放读入的字符串。 最简单的办法就是在声明中明确指出数组的大小: char name[81] ; 现在的name是一个已经分配81字节存储块的地址。另一...

idreamo
2016/08/19
23
0
C Primer Plus 第11章 11.13 编程练习答案

1、设计并测试一个函数,可以从输入读取n个字符(包括空格、制表符和换行符),把结果存储在一个数组中,这个数组的地址通过参数来传递。 2、修改并测试练习1中的函数,使得可以在n个字符后,...

idreamo
2016/09/22
698
0
C Primer Plus 第7章 C控制语句:分支和跳转 本章概要

在本章中您将学习到以下内容: *关键字 if / else / switch / continue / break / case / default / goto *运算符 && || ?: *函数: getchar() / putchar() 以及ctype.h系列 *怎样使用if和i...

idreamo
2016/06/12
47
0
C Primer Plus 第8章 字符输入/输出和输入确认 8.11 编程练习答案

1、设计一个程序,统计从输入到文件结尾为止的字符数。 2、编写一个程序,把输入作为字符流读取,直到遇到EOF。令该程序打印每个输入字符及其ASCII编码的十进制值。注意在ASCII序列中空格字符...

idreamo
2016/07/05
379
0
C Primer Plus 第11章 字符串和字符串函数 11.5 字符串函数

C库提供了许多处理字符串的函数:ANSI C 用头文件string.h给出这些函数的原型。下面是一些最有用和最常用的函数:strlen() 、strcat()、strncat() 、strcmp() 、strncmp() 、strcpy()、 strn...

idreamo
2016/08/25
45
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS--列表

一、列表标识项 list-style-type none:去掉标识项 disc:默认实心圆 circle:空心圆 squire:矩形 二、列表项图片 list-style-img: 取值:url(路径) 三、列表项位置 list-style-position:...

wytao1995
今天
6
0
linux 命令-文本比较comm、diff、patch

本文原创首发于公众号:编程三分钟 今天学了三个文本比较的命令分享给大家。 comm comm 命令比较相同的文本 $ cat charabc$ cat chardiffadc 比如,我有两个文件char和chardiff如上,...

编程三分钟
今天
7
0
QML教程

https://blog.csdn.net/qq_40194498/article/category/7580030 https://blog.csdn.net/LaineGates/article/details/50887765...

shzwork
今天
5
0
HA Cluster之5

对于使用heartbeat v2版的CRM配置的集群信息都是保存在一个名为cib.xml的配置文件中,存放在/var/lib/heartbeat/crm/下。CIB:Cluster Information Base,由于xml文件配置不是那么方便,所以...

lhdzw
今天
6
0
玩转Redis-Redis基础数据结构及核心命令

  《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。本文主要讲述Redis的数据结构String,《玩转Redis-Redis基础数据结构及核心命令》相关操作命令为方便对比...

zxiaofan666
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部