C++字符串与指针 所有的内容也就这么多了。

1.定义一个字符串数组并初始化,然后输出其中的字符串。

#include <iostream>

using namespace std;
int main()
{
char str[]="i love china";
cout<<str<<endl;
return 0;
}

str是字符数组名,它代表字符数组的首元素的地址,输出时从str指向的字符开始,逐个输出字符,直到遇到‘\n’为止。

2.用字符串变量存放字符串。

定义一个字符串并初始化,然后输出其中的字符串。

#include <iostream>
#include<string>
using namespace std;
int main()
{
string str="i love china";
cout<<str<<endl;
return 0;
}

3.用字符指针指向一个字符串。

定义一个字符指针变量并初始化,然后输出它指向的字符串。

#include <iostream>
using namespace std;
int main()
{
char *str="i love china";
cout<<str<<endl;
return 0;
}

对字符指针变量str初始化,实际上是把字符串第1个元素的地址赋给str,系统输出时,先输出str所指向的第一个字符数据,然后使str自动加1,使之指向下一个字符,然后再输出一个字符。直到遇到字符串结尾标志‘\0’为止。注意,在内存中,字符串的最后被自动加了一个‘\0’,因此在输出时能确定字符串的终止位置。

4.通过指针来实现字符串的复制。

#include<iostream>
using namespace std;
int main(){
char str1[]="i love china";
char str2[20];
char *p1;
char *p2;
p1=str1;
p2=str2;
for(;*p1!=‘\0‘;p1++,p2++)
*p2=*p1;
*p2=‘\0‘;
p1=str1;
p2=str2;
cout<<"str1 is:"<<p1<<endl;
cout<<"str2 is:"<<p2<<endl;
return 0;
}

时间: 2024-09-30 19:20:16

C++字符串与指针 所有的内容也就这么多了。的相关文章

C字符串和指针问题汇总

空指针和传参问题 1) 段错误.形参改为二级指针即可 void GetMemory( char *p ){ p = (char *) malloc( 100 ); } void Test( void ){ char *str = NULL; GetMemory( str ); strcpy( str, "hello world" ); printf("%s\n",str); } 2) char p[]改为char*即可,否则是局部变量 char *GetMemory

编程题:字符串的指针引用。用指针法实现。功能:将字符串str2复制连接到str1

#include<stdio.h> void main() { char *s1,*s2, str1[30]="beijing",str2[10]="China"; for(s1=str1;*s1!='\0';s1++); for(s2=str2;*s2!='\0';) *s1++=*s2++; *s1='\0'; printf("%s\n",str1); } 编程题:字符串的指针引用.用指针法实现.功能:将字符串str2复制连接到s

8.31 二维数组 字符串和指针

指针+1移动了相当于所指向类型的大小的字节 int *s1[100] 移动了4个字节 int (*s2)[100] 移动了400个字节 char *s3 移动了1 个字节 int *s4 移动了4个字节 ***p2如何理解? int *p0 = &i *p0  = i int **p1 = &p0 **p1 = i int ***p2 = &p1 ***p2 = i *p2 = p1的值 **p2 = p0的值 ***p2 = i的值 所以***p2就是p0的值        而p

C语言基础学习5:字符串与指针

1.字符串的表示形式 (1)用字符数组存放一个字符串,然后输出该字符串. char string[] = "I am happy"; printf("%s",string); (2)用字符指针指向一个字符串. char *string = "I am happy"; printf("%s",string); 2.字符指针作函数参数 (1)用字符数组作参数 void CopyString(char from[], char to

第四章 数组,字符串和指针

数组 数组若没有指定初始值则为内存遗留值 如果指定了部分初始值,那么其余部分也默认被指定为0: long data[100]={0};          //给data数组的所有元素赋0 字符串是附加有特殊字符(/0)的字符序列 数组的填充: char president[]="thank you"; wchar_t president[]=L"thank you";     //Unicode字符串 const int max=80; char name[max]

【程序员编程艺术】学习记录1:左旋转字符串之指针翻转法

[程序员编程艺术]学习记录1:左旋转字符串之指针翻转法 题目:左旋转字符串 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部,如把字符串abcdef左旋转2位得到字符串cdefab.请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(n) 思路一.暴力移位法 //暴力移位法 void leftshiftone(char *s, int n) { char t = s[0]; for(int i = 1;i < n; i++) s[i-1]

c之指向常字符串的指针做加法

先看一小段代码 #include<string.h> int main() { size_t len = 0; const char* id = "abcdefghijklmn"; len = strlen(id); if (len > 3) { id += len - 3 ; } return 0; } 乍一看,觉得这段代码一定是有问题,id是一个指向常量字符串的指针,还能做加减? 但是,指针当然能做加减呀.id不是一个常指针,当然能够改变,就算id是一个常指针,也

c#编程指南(十) 平台调用P-INVOKE完全掌握, 字符串和指针

可以说新手使用P-INVOKE最开始的头疼就是C#和C++的字符串传递,因为这里涉及到两个问题. 第一:C#的string和C++的字符串首指针如何对应. 第二:字符串还有ANSI和UNICODE(宽字符串)之分. 本文分三部分阐述: 第一:字符串指针当输入参数, 第二:字符串指针作为返回值, 第三:字符串指针作为输入输出参数. C++部分的测试代码很简单这里就全部贴出来了: 1 #include "stdafx.h" 2 #include "TestDll.h"

cout 输出字符串(指针)常见问题及put,write函数

C++ ostream类为下面的指针类型定义了插入运算符函数: const signed char *; const unsigned char *; const char *; void *; C++用指向字符串存储位置的指针来表示字符串,指针的形式可以是char数组名,显式的char指针或用引号括起来的字符串. 下面是一个简单输出字符串的例子: #include <iostream> using namespace std; int main() { char name[] = "