mdsk.net
当前位置:首页 >> C++中怎么给字符指针赋值 >>

C++中怎么给字符指针赋值

#include"stdio.h"main(){char *p;char a[20];p=a;printf("请输入字符串\n");gets(a);printf("输入的字符串是:");puts(a);}

如果你想修改指针s所指的字符串,那么就不加const限定.

1、char类型是字符类型,但存储的是单个字符,存储字符串用字符数组.2、char *p = “abc”:声明字符型指针变量p,并将字符串abc的首地址赋给p(即字符'a'的地址).PS:p存储的不是整个字符串,而是“abc”的首地址.3、执行p[0] = 'a',相当于将字符a赋给p[0](p为首地址,p[0]即字符串第一个字符H),即强制改变字符串Hello中的'H'值,但“Hello”是字符常量.其值不能被改变.故出错.

#include using namespace std;int main(){ int time1[3]; Clock myClock; cout 评论0 0 0

1、name=new char[strlen(name)+1]; 这句是初始化name,使它的长度为name+1,(因为字符数组后边还有\0 占一位) 后面的~student 是析构函数,释放资源.2、 student(char *name),这里参数传过来的只是首地址,一共有多少个字符没有关系,但是如果用的是数组,像你那样,就把长度限制住了,不灵活.

可以使用库函数strcpy,或者自己来实现简单的说,就是:定义一个指针指向str,例如char *cur=str;while(*p!='\0')*(cur++)=*(p++);

char *p="abc" 这样定义编译器默认把abc当做常量,也就是等价于 const char *p="abc" 你用strcat,就改变了p1的值了,所以报错 解决方法如下:方法一:char s1[]="abc", s2[2]="def"; char *p1, *p2; p1=s1; p2=s2; strcat(p1, p2);方法二:把程序用Release编译看看可以用不,VC6下Debug模式下式常量,Release就是普通变量了

int i = 0;int start = 0; //指定从p的起始位置,这里默认为0while(s[i]!='\0') //条件是未指向结束符时 p[start++] = s[i++];//从p的指定位置开始依次把s的值复制过来

看清楚以下语句char *str[30]; char name[30];str[30]=name; //首先这里越界,先不提越界的事.首先str是一个指针数组,也就是说str中的每一个成员都是一个指针,比如str[0]是一个指针char类型的指针,str[1]也是,str[2]str[29]都是一个char类

只有在定义的同时这样(a[20]="what for")赋值才行,其他不行,这是c语言规定的 要先定义然后再在其他地方赋值的话,就只能一个一个元素单独赋值,不过要是想达到同样的效果(类似a[20]="what for"),对于字符串数组,可以用库函数strcpy()函数赋值,其他的话,你可以自己写函数给他们赋初值!!

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com