社区
C语言
帖子详情
字符串的处理
老鱼趣多多
2003-09-13 10:22:12
strcpy(str1,str2)的用法问题,
str1必须是字符串数组名?
当我用一个char *str1时,
我给它分配了空间,str1=new char[20];
即使这样仍不能将指针str2内的东西考进去,
谁能告诉我为什么?
...全文
83
13
打赏
收藏
字符串的处理
strcpy(str1,str2)的用法问题, str1必须是字符串数组名? 当我用一个char *str1时, 我给它分配了空间,str1=new char[20]; 即使这样仍不能将指针str2内的东西考进去, 谁能告诉我为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weibz0525
2003-09-13
打赏
举报
回复
第3个不成功吗?
再好好试试
老鱼趣多多
2003-09-13
打赏
举报
回复
1 不成功
#include <string.h>
#include <stdio.h>
main()
{
char *str1="hello world";
char *str2="hello";
strcpy(str1,str2);
return 1;
}
2 成功
#include <iostream.h>
#include <string.h>
main()
{
char *str1=new char[20];
char *str2="hello world";
strcpy(str1,str2);
}
3 不成功
#include <iostream.h>
#include <string.h>
main()
{
char *str1=new char[20];
str1="hello world!";
char *str2="hello world";
strcpy(str1,str2);
}
4 成功
#include <string.h>
main()
{
char str1[]="hello world";
char str2[]="good";
strcpy(str1,str2);
}
综上,我想问的就是,
为什么当参数str1为字符数组的时候,可以允许在str1有内容的情况下,str2可以覆盖它,
而当参数str1为指针的时候,即使为其分配了空间,仍然不能将它覆盖???
sevencat
2003-09-13
打赏
举报
回复
或者直接拷
char a[256];
strcpy(a,"I get a C++ mark")
char *s=new char[222];
strcpy(s,"faint")
njtu
2003-09-13
打赏
举报
回复
应该没问题,数组也是作为char *处理的
char * strcpy(char *dest,const char *src)
{
assert(dest != NULL && src != NULL)
char *temp = dest;
while(*dest++ = *src++);
return temp;
}
昵称怎么改都存在
2003-09-13
打赏
举报
回复
让咱看看源程序吧.学习ing.
weibz0525
2003-09-13
打赏
举报
回复
不会吧,即使没分配空间,str1都会显示str2内容
DreamInCPP
2003-09-13
打赏
举报
回复
是你的代码写的有问题。
最好是不要用这种处理方式。C++的一个指导思想是:不要去重复已有的劳动。
你可以用string类。
如:
//:
//……
#include <string>
using namespace std;
string str1,str2;
str1=str1+str2;
//……
//:~
--By C++睡梦心经
晨星
2003-09-13
打赏
举报
回复
如果还有问题,吧你的代码帖一下吧。
晨星
2003-09-13
打赏
举报
回复
谁说的?完全可以。
weibz0525
2003-09-13
打赏
举报
回复
3
不知道你用的什么编译器,我在bc 5.0下是成功的
理论上我认为也行的通,str1是在堆上分配的,既然有空间,就应该可以赋值。
char *str2="hello world"这句应该是在全局数据区给字符串常量分配内存,然后返回头指针给str2,
str1在堆上,str2在全局数据区,都有自己的空间,相互赋值应该没问题,
字符串常量最好不要更改,但不是不能更改,只不过不安全(万一是只读存储器呢)
4
字符串常量是在栈区分配空间的,而且2者都是,没什么问题
ningzhiyu
2003-09-13
打赏
举报
回复
定义了常量,常量是不能在程序中改变的。
char *str1="hello world";//定义一个字符指针,指针指向字符串常量"hello world"的首位
char *str2="hello";//同上;
strcpy(str1,str2);//这里是对指针指向的常量空间操作!!!故不成功
//////////////
char *str1=new char[20];";//定义一个字符指针,指针指向new申请的内存块。
char *str2="hello world";";//定义一个字符指针,指针指向字符串常量"hello world"的首位
strcpy(str1,str2);//把str2指向的字符串常量拷贝到str1指向的内存块(是new申请的,在栈上,非常量,可以在程序中更改)。故成功//另,结尾没有把new的内存释放,内存泄漏
///////////
char *str1=new char[20];
str1="hello world!";
应该是语法问题,c是不支持字符串赋值str1="hello world!"的,除了在定义同时初始化,如:char *str1="hello world!"; 其他地方使用str1="hello world!";类似的语法均为非法。记得应该是这样,谭先生的书就有说的。
sakurar
2003-09-13
打赏
举报
回复
且你的3中new在堆上分配的内存的指针被丢弃掉了,无疑会造成内存泻漏。
sakurar
2003-09-13
打赏
举报
回复
To yuzhenhao(出人世间):
静态存储空间是只读的。
TStringManager集合了超过80种
字符串
函数
TStringManager集合了超过80种
字符串
函数,而且每个函数都有相关的帮助与例子。
C++语言
字符串
处理
函数
C++语言提供了比C语言更丰富的
字符串
处理
功能。它可以在
字符串
上经行输入,输出,合并,修改,比较,转换,复制,搜索等操作。使用这些现成的功能可以大大减少我们的编程的负担。 输入和输出的
字符串
函数,如printf,puts,cout,scanf,gets,cout等,在使用时应包含头文件cstdio,并使用其他
字符串
函数包含头文件cstring。cstring是一个专门用于
处理
字符串
的头文件。它包含...
Java工程师必学系列课程之5--《
字符串
及正则表达式》视频课程
课程目标:学习Java语言中
字符串
相关的知识、字符编码常识和正则表达式的使用,并完成案例前导课程:《Java工程师必学系列课程》前4部课程内容:本课程是《Java工程师必学系列课程》的第5部分,主要讲解Java语言中
字符串
相关知识、字符编码常识和正则表达式的使用。本课程涉及的主要内容可以分为四部分:一、String、StringBuffer和StringBuilder类基本常识、基本原理和使用技巧二、字符编码常识三、Java语言正则表达式的详细语法和使用技巧四、实战案例课程说明:在开发Java程序的过程中,最常用的类莫过于
字符串
相关的类。可以毫不夸张的说,任何一个Java程序,都离不开对
字符串
保存和
处理
。很多学员对
字符串
的理解只是处于比较粗浅的阶段。殊不知,如果对
字符串
处理
的不好,会影响到软件的运行效率。本课程专门讲解
字符串
相关的知识,将从
字符串
的存储方式、底层的运行方式等各方面深入讲解其中的原理和技巧。此外,对
字符串
进行更高级的
处理
,又要用到正则表达式的相关知识。正则表达式广泛应用于各种与
字符串
处理
相关的场合。它是一套独立的语言系统,经过几十年的完善和发展,现在已经非常的强大,并且形成了国际标准。各种高级编程语言,都实现了自己的表达式引擎。本课程详细的讲解了Java语言中正则表达式的语法和使用技巧。掌握了正则表达式,对编程水平的提高有非常大的帮助!同时,本课程在最后一部分,安排了非常精彩的、完整的实战案例,通过实战的形式切实帮助学员提高解决具体问题的能力!预期效果:认真学习完本课程,学员可以掌握
字符串
处理
及正则表达式相关的系统知识,并能提高实际的编码水平。环境配置要求:学习本课程需安装JDK1.8或更高版本的JDK,以便程序能正确运行,建议使用IntelliJ IDEA 2019.1.2或更高版本的开发工具。 因有合作协议约束,《穆哥学堂》只提供PDF版本的课件!
pandas
字符串
处理
方法介绍
本文示例代码及文件已上传至Github仓库:https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在日常开展数据分析的过程中,我们经常需要对
字符串
类型数据进行
处理
,此类过程往往都比较繁琐,而pandas作为表格数据分析利器,其内置的基于Series.str访问器的诸多针对
字符串
进行
处理
的方法,以及一些top-level级的内置函数,则可以帮助我们大大提升
字符串
型数据
处理
的效率。 本文我就将带大家学习pandas中常用的一些高效
字符串
处理
方法..
从键盘输入一个
字符串
a,将
字符串
a复制到
字符串
b中,再输出
字符串
b,即编程实现
字符串
处理
函数strcpy()的功能,但要求不能使用
字符串
处理
函数strcpy()。
从键盘输入一个
字符串
a,将
字符串
a复制到
字符串
b中,再输出
字符串
b,即编程实现
字符串
处理
函数strcpy()的功能,但要求不能使用
字符串
处理
函数strcpy()。 **输入提示信息:"Input a string:" **输入格式要求:用gets()输入
字符串
**输出格式要求:"The copy is:" 使用字符指针编程的 #include<stdio.h> #include<string.h> void mystrcpy(char *a,char *b) { ..
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章