首页 理论教育字符串的存储与处理-C语言程序设计

字符串的存储与处理-C语言程序设计

【摘要】:语句“Char*p=“C Language”;”的作用是使指针变量p指向字符串的起始地址,千万不要认为是将字符串中的字符赋给指针变量p。p是指向字符型数据的指针变量,它的值是地址。例7.18有一行字符,要求删除指定的字符。

字符串是存放在字符数组中的,为了实现对字符串的操作,可以定义一个字符数组,也可定义一个字符指针,通过指针的指向来访问所需的字符。

例7.17 试分析以下程序运行结果。

#include<stdio.h>

运行结果如下:

C Language

C Language

事实上,以上的输出实现也可用如下方法一个一个字符的输出:(www.chuimin.cn)

也可以不定义字符数组,而直接用一个指针变量指向一个字符串常量,所以上面程序也可写成:

程序中虽然没有定义数组,但字符串在内存中是以数组形式存放的。它有一个起始地址,占一片连续的存储单元,而且以’\0’结束。语句“Char*p=“C Language”;”的作用是使指针变量p指向字符串的起始地址,千万不要认为是将字符串中的字符赋给指针变量p。p是指向字符型数据的指针变量,它的值是地址。

例7.18 有一行字符,要求删除指定的字符。

分析:假如有一行字符“I Have 50 Yuan.”,如果要删除“0”,则字符变为“I Have 5 Yuan.”。于是可以设一个目标数组a,将给定字符串中的字符逐个传送到该数组中,但要删除的字符不被传送。传送的过程可以使用循环语句一个字符一个字符地传送,当遇到字符串结束标志’\0’时,则认为传送结束。最后再给目标数组赋一个结束标志即可,这样目标数组就相当于达到了要求。

例7.19 将字符串a复制到字符串b中。