字符串与指针{学习笔记}

<<用字符指针指向一个字符串:

#include <studio.h>
void main()
{
char *string="hello,world!";
printf("%s\n",string );
return;
}

例子:将字符串a复制成字符串b

#include <studio.h>
void main()
{
char a[]="i am a boy",b[20];
int i;
for (i=0;*(a+i)!=‘\0‘;i++)
{
*(b+i)=*(a+i);
*(b+i)=‘\0‘;
printf("string a is :%s\n",a);
printf("string b is :");
for (i=0;b[i]!=‘\0‘;i++)
{
printf("%c",b[i]);
printf("\n");
}
}
}

>>使用指针变量;

#include <studio.h>
void main()
{
char a[]="i am a boy",b[20],*p1,*p2;
int i;
p1=a;p2=b;
for (;*p1!=‘\0‘;p1++,p2++)
{
*p2=*p1;
*p2=‘\0‘;
printf("string a is :%s\n",a);
printf("string b is :");
}
for (i=0;b[i]!=‘\0‘;i++)
{
printf("%c",b[i]);
printf("\n");
}
return 0;
}

程序必须保证使p1和p2同步移动;

字符指针作函数参数

将一个字符串从一个函数传递到另一个函数,可以用地址传递的方法,即用字符数组名作参数,也可以用指向字符的指针变量做参数,在被调用的函数中可以改变字符串的内容,在主调函数中可以得到改变了的字符串。

用函数调用实现字符串的复制

(1)用字符数组作参数

#include <studio.h>
void main()
{
void copy_string(char from[],char to[]);
char a[]="i am a teacher.";
char b[]="you are a student";
printf("string a=%s\nstring b=%s\n",a,b);
printf("copy string a to string b:\n");
copy_string(a,b);
printf("\nstring a=%s\nstring b=%s\n",a,b );
return;
}

void copy_string(char from[],char to[])
{
int i=0;
while (from[i]!=‘\0‘)
{
to[i]=from[i];
i++;
to[i]=‘\0‘;
}
}

>>用字符指针变量作实参,先使指针变量a和b分别指向两个字符串;

#include <studio.h>
void main()
{
void copy_string(char from[],char to[]);
char from[]="i am a teacher";
char to[]="you are a student.";
char *a=from;
char *b=to;
printf("string a=%s\nstring b=%s\n",a,b);
printf("copy string a to string b:\n");
copy_string(a,b);
printf("\nstring a=%s\nstring b=%s\n",a,b );
return;
}
void copy_string(char from[],char to[])
{
int i=0;
while(from[i]!=‘\0‘)
to[i]=from[i];
i++;
to[i]=‘\0‘;
}

>>形参用字符指针变量

#include <studio.h>
void main()
{
void copy_string(char *from,char *to);
char from[]="i am a teacher";
char to[]="you are a student.";
char *a=from;
char *b=to;
printf("string a=%s\nstring b=%s\n",a,b);
printf("copy string a to string b:\n");
copy_string(a,b);
printf("\nstring a=%s\nstring b=%s\n",a,b );
return;
}
void copy_string(char *from,char *to)
{
for (;*from!=‘\0‘;from++;to++)
{
*to=*from;
*to=‘\0‘;
}
}

时间: 2024-11-24 23:51:50

字符串与指针{学习笔记}的相关文章

&lt;深入理解C指针&gt;学习笔记和总结 第四章 指针和数组

数组是一个什么玩意: 数组和指针我的理解,有相同之处也有不同之处.因有相同之处,因此一些资料上说,数组和指针本质是相同的.因有不同之处,因此也有一些资料上说,数组和指针是不一样的. 相同之处: 数组名字和指针名字都代表了一个地址. 如:int num[10];num是数组名.函数开辟了一个存储十个整数类型的空间,而num是他们的首地址. int *p; p=(int *)malloc(10*sizeof(int));类似的,p也指向了首地址. 不同之处是,num[10]中的空间位置是在栈中,而

C和指针 学习笔记-4.函数

参数传递: 参数传递采用按值传递 ADT&黑盒 ADT:abstract data type,抽象数据类型 c可以用于设计与实现抽象数据类型,因为它可以限制函数和数据定义的作用域,这种技巧也称为黑盒设计 user.h #define MAXLEN 3 struct UserClz { char *name; char *phone; char *address; }; typedef struct UserClz User; /* *接函数 *通地名称查找地址 */ char const * l

C和指针 学习笔记-3.数组与指针

数据名代表首地址 指向数组的指针 #include <stdio.h> extern void iterate(int *p); void main(){ int a[]={1,2,3,4,5}; iterate(a); } void iterate(int *p){ int i; for(i=0;i<5;i++){ printf("%d",*p++); } } 指向一维数组的指针 int (*p)[3] #include <stdio.h> void i

数组与指针学习笔记

1.数组初始化说明 (1).在函数体外定义的内置数组,其元素均被初始化为0: (2).在函数体内定义的内置数组,其元素无初始化: (3).类类型的数组自动调用默认构造函数进行初始化,如果无默认构造函数,则必须为该素族元素提供显示初始化. 2.指针的定义 double *p_dbData1, p_dbData2; p_dbData1为指向double类型的指针,p_dbData2为类型为double的对象,若两个变量都定义为double指针,则如下所示: double *p_dbData1,  *

C# 指针学习笔记之fixed 语句

大学的时候学过C++.C,最近工作也不是很忙,就想起看看C#中的指针,看看.回忆一下啊,指针的用法,以下学习笔记摘自msdn:fixed 语句 fixed 语句禁止垃圾回收器重定位可移动的变量.fixed 语句只能出现在不安全的上下文中.Fixed 还可用于创建固定大小的缓冲区. 备注 fixed 语句设置指向托管变量的指针并在 statement 执行期间"钉住"该变量.如果没有 fixed 语句,则指向可移动托管变量的指针的作用很小,因为垃圾回收可能不可预知地重定位变量.C# 编译

C和指针学习笔记

重读经典:<C和指针>学习笔记之第一章至第九章 <C和指针>. <C专家编程>. <C陷阱和缺陷>并称c语言三本经典著作,笔者在许多年前囫囵吞枣读完了这三本经典,然后把这三本书束之高阁.时至今日,大部分内容都已忘记,前些时间偶然翻出来,重读这些经典,顺便做做笔记,记录其精华. <C和指针>通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去. 第1章 快速上手 本章讲的是C语言的基础知识,目的是使读者对C语言有一个

C# 指针学习笔记之指针类型

大学的时候学过C++.C,最近工作也不是很忙,就想起看看C#中的指针,看看.回忆一下啊,指针的用法,以下学习笔记摘自msdn:指针类型 在不安全的上下文中,类型可以是指针类型以及值类型或引用类型.指针类型声明具有下列形式之一: type* identifier; void* identifier; //allowed but not recommended 下列类型都可以是指针类型: sbyte.byte.short.ushort.int.uint.long.ulong.char.float.d

C++学习 - 虚表,虚函数,虚函数表指针学习笔记

虚函数 虚函数就是用virtual来修饰的函数.虚函数是实现C++多态的基础. 虚表 每个类都会为自己类的虚函数创建一个表,来存放类内部的虚函数成员. 虚函数表指针 每个类在构造函数里面进行虚表和虚表指针的初始化. 下面看一段代码: // // main.cpp // VirtualTable // // Created by Alps on 15/4/14. // Copyright (c) 2015年 chen. All rights reserved. // #include <iostr

智能指针学习笔记

1. 介绍 本文介绍智能指针的使用.智能指针是c++ 中管理资源的一种方式,用智能指针管理资源,不必担心资源泄露,将c++ 程序员 从指针和内存管理中解脱出来,再者,这也是c++发展的趋势(这话不是我说的,见<Effective c++>和<c++实践编程>),应该认真学习一下. 智能指针中,最有名的应该数auto_ptr,该智能指针已经被纳入标准库,只需要包含<memory>头文件即可以使用,另外,TR1文档定义的shared_ptr和weak_ptr也已经实现(我用