`

字符串赋值=和strcpy问题

    博客分类:
  • C++
阅读更多
#include<iostream>
#include<string.h>
using namespace std;

struct Student
{
    char name[10];
    int num;
    char sex;
};

int main()
{
    Student *p;
    p = new Student;
    strcpy(p->name, "Wang Fun");
   char chr[] = {"Wang Fun"};
  // p -> name =  {"Wang Fun"}; 错误,数组之间不能直接赋值
    p->num = 10123;
    p->sex = 'M';
    cout << p -> name << " " << p->num << " " << p -> sex <<endl;
    delete p;
    return 0;
}

 

  关于字符串的赋值问题,网上说得很多,都谈论的是,用‘=’号时是指向同一地址,strcopy时是得到两个相同的字符串,但是却没有提及到修改问题。

    其实,当用‘=’号赋值时,得到的字符串是不能够修改的,但是编译时却不会提示错误。而用strcpy复制时,可以对字符串修改,但在使用strcpy之前,应该用new或malloc等为字符串分配空间。

#include <iostream.h>
#include <string.h>
int main()

{

   char *str="hello";

   str[0]='H';

   cout<<endl<<str<<endl;

   return 0;
}

执行结果:

....关闭

 

#include <iostream.h>
#include <string.h>
int main()

{

   char *str;
   str=new char;
   strcpy(str,"hello");

   str[0]='H';

   cout<<endl<<str<<endl;

   return 0;
}

执行结果:

Hello

分享到:
评论

相关推荐

    C语言基础教程课件指针数据类型

    strcpy()函数用于将一个字符串的内容复制到另一个字符串,相当于字符串赋值。strcat()函数用于将一个字符串追加到另一个字符串的末尾。 多维数组: C语言允许声明多个维度的数组。例如,二维数组使用两个方括号表示...

    C语言期末复习必备资料

    2、以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。请填空。 void sstrcpy(char *s,char *t) { while(*s++=______);} main() { char str1[100],str2[]="abcdefgh"; s...

    单片机c语言字符串操作

    大家知道strcpy 是子环节复制字符串,可能不知道还有个strncpy,这是复制指定长度的字符串 chardes[]="Hello,iam!"; charsource[]="abcdefg"; strncpy(chardes,charsource,3); 这时chardes的值是abc 注意这里可...

    C 语言中声明字符串数组

    当在已经初始化的数组中存储字符串值时,不允许使用赋值运算符,应使用特殊的内存复制函数,如 strcpy。 #include #include #include #define MAX_LENGTH 100 #define NUM_STRINGS 10 int mai

    C字符串与C++字符串的深入理解

    在C中,并没有字符串这个数据类型,而是使用字符数组来保存字符串。C字符串实际上就是一个以null(‘\0’)字符结尾的...//字符串的赋值strcpy(a,”nihao”)//获取字符串的长度,不包括’\0’在内strlen(a);printf(“%s”

    缓冲区溢出利用实验(详细步骤)

    由于程序的运行机制,假设利用 strcpy()函数进行字符串赋值,因定义的字符 串及输入字符串长度不一致或过长,从而占用了 ebp(栈底)和 call(函数)返回地址的栈 区。基于此可利用修改的函数调用结束后的返回地址...

    关于C++中strcpy函数例题讲解

    2.从src地址开始且含有null结束符的字符串复制到以dest地址开始的字符串中,并返回指向dest的指针。通俗的讲就是将 src字符数组复制到dest数组中,如果dest数组本身有数据,会把src里的数据全部复制到dest中,如果...

    计算机基础与程序设计.doc

    可将字符串 I am a boy 赋给数组c,下面正确的选项有( ) (分数:2分) A. c= I am a boy B. getchar(c) C. gets(c) D. scanf( %s ,c) E. for(i=0;i;i++) scanf( %c ,&c[i];c[10])='\0' 正确答案:CE 2、设有定义...

    c++设计实现一个&quot;字符串类&quot;,要求系统设计具有一定弹性和可扩展性,使得后续维护和扩展功能更容易,增加或修改系统功能变得更简单。

    4、编写拷贝构造函数和重载赋值运算符,完成字符串类对象直接赋值操作。 5、编写析构函数,释放初始化时开辟的空间。 6、编写求字符串长度函数,不允许使用strlen或类似功能函数。 7、编写字符串拷贝函数,不允许...

    C语言程序设计标准教程

    数组的赋值给数组赋值的方法除了用赋值语句对数组元素逐个赋值外, 还可采用初始化赋值和动态赋值的方法。数组初始化赋值数组初始化赋值是指在数组说明时给数组元素赋予初值。 数组初始化是在编译阶段进行的。这样将...

    明解C语言(第3版)入门篇.[日]柴田望洋(带详细书签).pdf 【半高清】

    strcpy函数、strncpy函数:复制字符串 331 strcat函数、strncat函数:连接字符串 332 strcmp函数、strncmp函数:比较字符串的大小关系 332 atoi函数、atol函数、atof函数:转换字符串 333 总结 336 第12章 ...

    c++ 运算符重载和方法重载

    strcmp(s1,s2)比较s1和s2字符串内容是否相同 strcat(s1,s2)拼接字符串,把s2拼接在s1的末尾 strchr(s1,ch)找到s1这个字符串里面第一次出现ch这个字符的位置 strstr(s1,s2)找到字符串s1里面第一次出现s2...

    c语言填空题个人整理

    C语言填空题所有填空题(答案中#用来间隔所有正确...2、以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。请填空。 void sstrcpy(char *s,char *t) { while(*s++=______);}

    c语言高效编程,编写高效简洁的C 语言代码,

    例如:字符串的赋值。 方法A:通常的办法: #define LEN 32 char string1 [LEN]; memset (string1,0,LEN); strcpy (string1,"This is a example!!"); 方法B: const char string2[LEN] ="This is a example!"; char...

    c程序设计习题参考(谭浩强三版)习题参考解答

    8.8编写一函数,有实参传来一个字符串,统计此字符串中字母,数字,空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果。 52 8.10写一函数,用“起泡法”对输入的10个字符按由小到大的顺序排列。 54 ...

    《你必须知道的495个C语言问题》

    书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。 《你必须知道的495个C语言问题》结构...

    最新名企标准通用C++面试题,

    (1)不调用C++/C的字符串库函数,请编写函数 strcpy char *strcpy(char* strDest, const char* strSrc) { assert((strDest!=NULL) && (strSrc !=NULL));//2分 char *address = strDest;//2分 while( (*strDest++ =...

    C语言FAQ 常见问题列表

    previous up contents next C 语言常见问题集 原著:Steve Summit 翻译:朱群英, 孙 云 修订版 0.9.4, 2005年6月23日... o 8.6 我有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返回串却是垃圾信息。 ...

    C语言讲义.doc

    8.7.10 strcpy字符串拷贝 43 8.7.11 strncpy字符串有限拷贝 43 8.7.12 sprintf,格式化字符串 43 8.7.13 Sscanf函数 44 8.7.14 strchr查找字符 44 8.7.15 strstr查找子串 44 8.7.16 strtok分割字符串 44 8.7.17 atoi...

Global site tag (gtag.js) - Google Analytics