C primer plus 读书笔记第十一章

时间:2021-04-30 22:30:47

本章标题是字符串和字符串函数。主要是了解和字符串有关的函数。

1.字符串表示和字符串I/O

  主要内容:字符串常量和字符串数组的初始化,对比了指针和字符串。

  其中要注意的是,数组初始化是从静态存储区把一个字符串复制给数组,而指针初始化只是复制字符串的地址。但是绝大多数的C字符串操作使用的都是指针。

2.字符串的函数

  无论怎么样,先分配足够的空间。介绍了三种输入函数gets()、fgets()、scanf()和三种输出函数puts()、fputs()、printf(),以及strlen()、strcat()等函数。

  

/* mod_str.c -- modify a string */
#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;
}

  这个代码充分体现了指针的简洁性。细细体会。

不过c语言处理字符串总的来说还是挺麻烦,还是Python大法好。