一个处理字符串的问题?

Sylix 2005-03-08 03:10:50
如:
char* p1 = "ewew";


怎么在这个字符串最前面添加字符串呢?

变成
char* p1 ="11ewew";
...全文
172 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycom__net 2005-03-08
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
int len1, len2;
char *str1="werrt";
char *str2="sdfwerwr";
len1=strlen(str1);
len2=strlen(str2);
char *str3=(char*)malloc(sizeof(len1+len2+1));
strcpy(str3,str2);
strcpy(str3+len2, str1);
*(str3+len1+len2)='\0';
printf("%s",str3);
system("PAUSE");
return 0;
}
delhe 2005-03-08
  • 打赏
  • 举报
回复
int len1,len2;
char* p1 = "ewew";
char* p2 = "ll";
len1 = length(*p1);
len2 = length(*p2);
char* p3;
p3 = (char*)malloc(sizeof(len1+len2+1));
while(*p3++ = *p2++);
while (*p3++ = *p1++) ;
*p3 = "\0";

x_wgc 2005-03-08
  • 打赏
  • 举报
回复
char *p1 = (char *)malloc(sizeof(10));
strcpy(p1,"11ewew");

同意这个
dongpy 2005-03-08
  • 打赏
  • 举报
回复
char* p1 = "ewew";是常量字符串,要把它存放到栈上或堆上才能添。

char s1[7];
strcpy(s1+2, "ewew");

char s2[3] = "ll";
memcpy(s1, s2, 2);
qingyuan18 2005-03-08
  • 打赏
  • 举报
回复
char *p1 = (char *)malloc(sizeof(10));
strcpy(p1,"11ewew");
ra3 2005-03-08
  • 打赏
  • 举报
回复
char* p1 = "ewew";

p1 指向的是个常量, 所以不能添;

只有用 char p1[N] = "ewew";
winstonch 2005-03-08
  • 打赏
  • 举报
回复
只能用笨办法
Flood1984 2005-03-08
  • 打赏
  • 举报
回复
直接在这个前面加是不安全的,
因为他前面和后面也许根本没有空间来存放。
lw1a2 2005-03-08
  • 打赏
  • 举报
回复
笨办法:
int i;
char p1[7]="ewew";
char p2[7]="ll";
strcat(p2,p1);
for(i=0;i<7;i++)
p1[i]=p2[i];

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧