(1)用字符指针指向一个字符串
示例:
#include <stdio.h>
int main()
{
char *string="I love China!";
printf("%s\n",string); //输出定义的字符串
}
(2)字符串中字符的存取方法
对字符串中字符的存取方法,可以有两种方法:下标方法和指针方法。
下标方法:将字符串str复制到字符串chr
#include <stdio.h>
int main()
{
char str[] = "She is a beautiful gril!",chr[40];
int i;
for(i=0;*(str+i)!='\0';i++)
{
*(chr+i) = *(str+i);
}
*(chr+i)='\0';
printf("String str is:%s\n",str);
//printf("String chr is:%s\n",chr);
printf("String chr is:");
for(i=0;chr[i]!='\0';i++)
{
printf("%c",chr[i]);
}
printf("\n");
return 0;
}
指针方法:将字符串str复制到字符串chr
#include <stdio.h>
int main()
{
char str[] = "She is a beautiful gril!",chr[40],*p1,*p2;
int i;
p1=str;
p2=chr;
for(;*p1!='\0';p1++,p2++)
{
*p2=*p1; //把p1的值依次赋值给p2
}
*p2='\0';
printf("String str is:%s\n",str);
printf("String str is:");
for(i=0;chr[i]!='\0';i++)
{
printf("%c",chr[i]);
}
printf("\n");
return 0;
}
此两种方法的输出结果都是:
(3)用函数调用实现字符串的复制
方法一:用字符数组作参数
#include <stdio.h>
int main()
{
void copy_string(char a[],char b[]);
char str[]="I am a teacher!";
char chr[]="You are a student!";
int i;
printf("String str is:%s\n",str);
printf("String chr is:%s\n",chr);
printf("\n");
printf("copy string chr to string str:\n");
copy_string(str,chr); //把str和chr这两个数组的第一个地址传递过去
printf("String str is:%s\n",str);
printf("String chr is:");
for(i=0;chr[i]!='\0';i++)
{
printf("%c",chr[i]);
}
printf("\n");
return 0;
}
void copy_string(char a[],char b[])
{
int i=0;
while(a[i]!='\0')
{
b[i]=a[i];
i++;
}
b[i]='\0';
}
方法二:用字符指针作参数
#include <stdio.h>
int main()
{
void copy_string(char *a,char *b);
char *str="I am a teacher!";
char chr[]="You are a student!";
printf("String str is:%s\nString chr is:%s\n",str,chr);
printf("copy string chr to string str:\n");
copy_string(str,chr);
printf("String str is:%s\nString chr is:%s\n",str,chr);
return 0;
}
void copy_string(char *a,char *b)
{
while(*a!='\0')
{
*b++=*a++;
}
*b='\0';
}
此两种方法的运行结果是:
(4)对使用字符指针变量和字符数组的讨论
虽然用字符数组和字符指针变量都能实现字符串的存储和运算,但是它们二者有差别的,不能混为一谈。
主要概况起来有以下几点:
1、字符数组由若干个原始组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第一个字符的地址),绝不是将字符串放到字符指针变量中。
2、赋值方式。对字符数组只能对各个元素赋值。
不能用以下方法对字符数组赋值:
char str[20];
str = "I love China!";
而对字符指针变量,可以用下面的方法赋值:
char *a;
a = "I love China!";
但注意赋给a的不是字符,而是字符串第一个元素的地址。
3、对字符指针变量赋初值:
char *a = "I love China!";
等价于
char *a;
a = "I love China!";
而对数组的初始化:
char str[20] = {"I love China!"};
不能等价于
char str[20];
str[] = "I love China!";
4、指针变量的值是可以改变的
例如:
#include <stdio.h>
int main()
{
char *str="I love China!";
printf("%s\n",str);
str+=7;
printf("%s\n",str);
return 0;
}
运行结果:
另外需要说明的是,若定义了一个指针变量,并使它指向一个字符串,就可以用下标形式引用指针变量所指的字符串中的字符。
例如:
#include <stdio.h>
int main()
{
char *str="I love China!";
int i;
printf("The sixth character is %c\n",str[5]);
for(i=0;str[i]!='\0';i++)
{
printf("%c",str[i]);
}
printf("\n");
return 0;
}
执行结果是:
相关推荐
在处理字符串时,我们可以使用指针来操作字符串,这就是所谓的“字符串指针”。 1. **指针的概念** 指针是一个变量,它存储了另一个变量的地址。在C语言中,我们可以通过指针间接访问和修改被指向的变量。指针的...
在C语言程序设计中,指针与字符串是两个非常重要的概念。指针是C语言中的一个强大工具,它能够存储内存地址,而字符串在C语言中实际上是以字符数组的形式存在的。接下来,我们将深入探讨这两个概念以及如何在实际...
其中,`s`是指向C语言字符串数据的指针,`len`是字符串的长度,`encoding`是编码方式,`errors`是错误处理方式。 处理宽字符串 如果C语言字符串是宽字符串,可以使用Py_BuildValue()函数或PyUnicode_FromWideChar...
5. **返回结果**:返回复制后的子字符串指针。 ### 函数二:`subStringByPointer` #### 功能描述 `subStringByPointer` 函数通过指定起始字符指针(`begin`)和结束字符指针(`end`)来截取字符串。与 `...
以上就是C语言字符串快速压缩算法的实现细节。这个算法体现了C语言中对字符串的基本操作,包括字符数组的使用、字符串函数(如`strlen`)的调用以及自定义字符串处理逻辑。同时,它也展示了如何处理多种情况和数据...
C语言指针实现字符串的反转 本文主要讨论了使用C语言指针实现字符串的反转的方法,并提供了两个不同的实现程序。 标题解释 "C语言指针实现字符串的反转"这个标题表明本文的主要内容是使用C语言中的指针来实现字符...
接下来详细说明标题和描述中提及的C语言字符串操作函数。 首先,`strcpy` 函数的用途是将源字符串 `source` 完整拷贝到目标字符串 `destin` 中,并且包括源字符串的终止符 '\0'。这个函数不会检查目标数组是否有...
### 各种C语言字符串函数-笔试面试必备 在C语言中,字符串处理是程序员必须掌握的基本技能之一,尤其在笔试和面试环节中,考察字符串函数的使用与自定义实现非常常见。以下是对几种常见的C语言字符串函数的深入解析...
C语言用指针将字符串数组位置颠倒,实现ABCDEFGHIJKLMNOPQRSTUVWXYZ转换成ZYXWVUTSRQPONNOPQRSTUVWXYZ
本文档在某知名网站下载,要么浏览量最多,要么最新,保证精品,至少为你节约3RMB。格式为caj或者kdh需要专业阅读器打开。
c语言字符串交换,使用指针实现, 希望多多相互理解 学习
首先,必须从教育层面上重视C语言字符串类型的缺陷,通过教育改革使得学生在学习C语言的同时能够掌握数据类型的基本知识。其次,应提倡在C语言的教学中强化类型区分,例如通过编译器提供的类型检查功能来区分char和...
C语言字符串的输入和输出 C 语言中字符串的输入和输出是非常重要的知识点,掌握这些知识点可以让开发者更好地处理字符串的输入和输出。 首先,C 语言中字符串的输入可以使用 scanf 函数,scanf 函数可以将用户输入...
总的来说,理解和掌握C语言中的指针与字符串操作对于任何C程序员来说都是至关重要的,它们是构建更复杂程序的基础。逆序和调序字符串只是冰山一角,实际编程中可能会遇到更多复杂的需求,都需要借助指针的强大功能来...
以下是一个简单的C语言字符串翻转函数实现,它使用了两个指针,一个指向字符串的开始,另一个指向字符串的结束: ```c #include #include void reverse(char *str) { int len = strlen(str); char *start = ...
标题《C语言字符、字符串定义及相关函数》所涉及的知识点主要集中在C语言中字符与字符串的表示方法、存储机制以及常用的字符串操作函数。C语言是高级编程语言中较为底层的一门语言,它没有专门的字符串类型,而是...
C语言字符串操作函数 C语言字符串操作函数是一组强大且实用的函数,用于处理和操作字符串。这些函数在C语言编程中非常常用,掌握这些函数可以提高编程效率和质量。本章将详细介绍C语言字符串操作函数的使用方法和...
在C语言中,字符串处理是编程中的重要组成部分。C语言本身并不像其他高级语言那样内置了丰富的字符串操作函数,但通过标准库中的`<string.h>`我们可以使用一些基本的字符串函数,如`strcpy`、`strlen`等。然而,为了...
本篇将详细讲解在"C语言字符串处理函数扩展"这一主题中,可能涉及到的知识点。 首先,我们来看`stringAPIext.c`和`stringAPIext.h`这两个文件。`stringAPIext.c`通常包含实现这些扩展函数的代码,而`stringAPIext.h...