荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: bakey (熊出没), 信区: Program
标 题: [合集]问个很简单的问题
发信站: 荔园晨风BBS站 (2005年11月14日12:41:14 星期一), 站内信件
☆ 1 ──────────── 我是分割线 ─────────────────☆
发信人: ORLICKYANG (单行道), 信区: Program
标 题: 问个很简单的问题
时 间: 2005年10月14日13:13:12 星期五
可我就是找不到,如何在一个字符串后面插入一个字符,有没有专门的函数?字符串与字
符串合并我就知道。谢谢啦
☆ 2 ──────────── 我是分割线 ─────────────────☆
发信人: mmkiller (小mos —> L㊣VE), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日13:20:07 星期五
strcat吧。就相当于连接两个字符串。
☆ 3 ──────────── 我是分割线 ─────────────────☆
发信人: ORLICKYANG (单行道), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日13:33:04 星期五
我试过了,strcat(_,_)里面的两个参数必须是char型的指针,也就是字符串名,我也试过
把其中一个参数设为指向一个字符的指针,但打印出来是乱码。有没有其他方法,还是得
( 小mos —> L㊣VE) 的大作中提到: 】: strcat吧。就相当于连接两个字符串。
☆ 4 ──────────── 我是分割线 ─────────────────☆
发信人: mmkiller (小mos —> L㊣VE), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日14:40:02 星期五
那个字符后面得跟着个 \0
☆ 5 ──────────── 我是分割线 ─────────────────☆
发信人: ORLICKYANG (单行道), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日15:22:36 星期五
你的意思是把char ch = 'a'改为char ch = 'a\0'还是char ch = "a\0",我试过了,是非
法的,但char ch[] = "a\0"是合法的,我又想知道如何将char ch = 'a',这个字符变成"
a\0"这个字符串呢?因为我每次得到的只是一个字符,而想把每次得到的字符逐个连接在
一起成为字符串,是否得用堆栈才能解决呢?谢谢
L㊣VE) 的大作
】
☆ 6 ──────────── 我是分割线 ─────────────────☆
发信人: mmkiller (小mos —> L㊣VE), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日15:24:44 星期五
char只是一个字节的大小你放两个字节内容当然是不行的。
堆栈太麻烦了,字符串数组方式操作吧,最后加多一个 \0 即可。
☆ 7 ──────────── 我是分割线 ─────────────────☆
发信人: achang (阿昌), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日16:42:56 星期五
是不是没给字符串数组分配足够的空间,或没有分配?
例如一下例子中的a[30]
#include <stdio.h>
#include <string.h>
int main()
{
char a[30]="achan";
char b[]="g";
printf("%s\n",strcat(a,b));
printf("%s\n",a);
return 0;
}
输出:
achang
achang
Press any key to continue
☆ 8 ──────────── 我是分割线 ─────────────────☆
发信人: achang (阿昌), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日16:46:42 星期五
加那个东西后还是字符吗?
☆ 9 ──────────── 我是分割线 ─────────────────☆
发信人: mmkiller (小mos —> L㊣VE), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日17:26:09 星期五
是个string。他就是因为没有结束符所以后面跟着一堆乱码
☆ 10 ──────────── 我是分割线 ─────────────────☆
发信人: bakey (三日不见,如隔24抽), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日22:14:13 星期五
//hand
☆ 11 ──────────── 我是分割线 ─────────────────☆
发信人: bakey (三日不见,如隔24抽), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日22:15:06 星期五
很明显char ch = 'a\0',你怎么能在单个字符的定义下加个\0呢
它也站一个字符位的啊
☆ 12 ──────────── 我是分割线 ─────────────────☆
发信人: oopilix (优雅的), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日22:27:50 星期五
字符数组串 如果插入一个字符能保证总长度仍小于数组长度就行。
char str[10]="test";
s[strlen(s)]='A';
s[strlen(s)+1]='\0';
可以自己改成函数
☆ 13 ──────────── 我是分割线 ─────────────────☆
发信人: oopilix (优雅的), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日22:28:54 星期五
strcpy(str,"A");其实就很现成了。
字符数组串 如果插入一个字符能保证总长度仍小于数组长度就行。
char str[10]="test";
s[strlen(s)]='A';
s[strlen(s)+1]='\0';
可以自己改成函数
☆ 14 ──────────── 我是分割线 ─────────────────☆
发信人: bakey (三日不见,如隔24抽), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日22:38:21 星期五
????不一样的吧,他不是要连接的吗?
你这个是拷贝了吧
☆ 15 ──────────── 我是分割线 ─────────────────☆
发信人: oopilix (优雅的), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月14日22:46:26 星期五
是strcat.
☆ 16 ──────────── 我是分割线 ─────────────────☆
发信人: ORLICKYANG (单行道), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月15日11:08:56 星期六
strcat(str,"a"),固然是好,可我不是要把"a"这个字符串连接到str后面,而是要把'a'这
个字符连接到str后面,如果有把单字符串转换成字符的函数那还好,没有的话就得自己编
☆ 17 ──────────── 我是分割线 ─────────────────☆
发信人: mmkiller (小mos —> L㊣VE), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月15日12:55:04 星期六
给你个最简单的办法:
sprintf(str, "%s%c", str, ch );
☆ 18 ──────────── 我是分割线 ─────────────────☆
发信人: bakey (三日不见,如隔24抽), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月15日18:51:08 星期六
实在是不明白你究竟想做什么....
☆ 19 ──────────── 我是分割线 ─────────────────☆
发信人: oopilix (优雅的), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月16日19:42:51 星期天
能实现就行,编一个咋啦。。函数可以自己写嘛。
转换一下都懒
strcat(str,"a"),固然是好,可我不是要把"a"这个字符串连接到str后面,而是要把'a'这
个字符连接到str后面,如果有把单字符串转换成字符的函数那还好,没有的话就得自己编
☆ 20 ──────────── 我是分割线 ─────────────────☆
发信人: achang (阿昌), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月16日21:17:21 星期天
标准C好像不支持sprintf()
☆ 21 ──────────── 我是分割线 ─────────────────☆
发信人: mmkiller (小mos —> L㊣VE), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月16日23:19:13 星期天
我不知道
☆ 22 ──────────── 我是分割线 ─────────────────☆
发信人: oopilix (优雅的), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月16日23:23:35 星期天
就是标准c的。
标准C好像不支持sprintf()
☆ 23 ──────────── 我是分割线 ─────────────────☆
发信人: zoj (三生有幸), 信区: Program
标 题: Re: 问个很简单的问题
时 间: Mon Oct 17 14:19:08 2005
sprintf是标准C函数库里的
楼主的想法,大概是把每次得到的一个字符拼成一个字符串
其实可以定义一个字符数组,每得到一个就往里写一个
☆ 24 ──────────── 我是分割线 ─────────────────☆
发信人: ORLICKYANG (单行道), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月18日18:00:38 星期二
我在前几天已经想到解决的办法了,虽然不是很完美,也还没考虑指针的delete,但还能
用。
char *str_cat(char *str,char ch)
{
char *new_str = new char[strlen(str)+1];
strcpy(new_str,str);
new_str[strlen(str)]= ch;
new_str[strlen(str)+1] = '\0';
return new_str;
}
调用的时候可以这样:str = str_cat(str,ch);其中char *str = new char(0);char ch;
☆ 25 ──────────── 我是分割线 ─────────────────☆
发信人: bakey (三日不见,如隔24抽), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月18日18:05:29 星期二
..........................................
☆ 26 ──────────── 我是分割线 ─────────────────☆
发信人: ORLICKYANG (单行道), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月18日18:07:29 星期二
莫非您有更好的办法?愿意赐教,谢谢啦~~
☆ 27 ──────────── 我是分割线 ─────────────────☆
发信人: mmkiller (小mos —> L㊣VE), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月18日18:09:46 星期二
佩服~牛人~~
☆ 28 ──────────── 我是分割线 ─────────────────☆
发信人: ORLICKYANG (单行道), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月18日18:17:39 星期二
灵感来自上面一位仁兄,其实有剽窃嫌疑,总感觉new_str没有被delete不大好。想问一下
调用完之后new_str会被自动delete么?谢谢~~~~~]
VE) 的大作中提到: 】: 佩服~牛人~~
☆ 29 ──────────── 我是分割线 ─────────────────☆
发信人: mmkiller (小mos —> L㊣VE), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月18日18:19:03 星期二
不会。。。
总体来说这个还是太烦了。还不如试一下 STL 得string。
有个 append() function.
☆ 30 ──────────── 我是分割线 ─────────────────☆
发信人: oopilix (优雅的), 信区: Program
标 题: Re: 问个很简单的问题
时 间: 2005年10月18日18:50:52 星期二
怎么切换成c++了,能用c++的话可以封装成类。稀构函数delete释放。
☆ 31 ──────────── 我是分割线 ─────────────────☆
发信人: zoj (三生有幸), 信区: Program
标 题: Re: 问个很简单的问题
时 间: Tue Oct 18 18:52:50 2005
函数体内的局部变量在函数结束时自动消亡
但是指针消亡了,不代表它所指的的内存会被自动释放
☆ 32 ──────────── 我是分割线 ─────────────────☆
发信人: zoj (三生有幸), 信区: Program
标 题: Re: 问个很简单的问题
时 间: Tue Oct 18 19:08:50 2005
你可以试下这种方法
char sStr[1000];
char sCh;
memset(sStr, 0, sizeof(sStr));
sStr[strlen(sStr)] = sCh;
下标不一定要这样,看你具体怎么用来改吧
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店