c语言的高手请进来

yyts 2003-10-16 03:07:06
现有一字符串"12345*67890*34567",
怎么编写代码把用"*"分隔的12345和67890和34567分别取出来并打印
...全文
27 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccwwbb 2003-10-17
  • 打赏
  • 举报
回复
qiuzhang:的程序就是啊
不必要用其他的函数
gy_hong 2003-10-17
  • 打赏
  • 举报
回复
#include <stdlib.h>
#include <string.h>
#include <iostream.h>

void main( void )
{
char str[] = "12345*67890*34567";
char *buffer = new char[strlen(str)];
long tmp;
int len=0;

tmp = atol(str);;
_ltoa(tmp, buffer, 10);
while(1)
{
cout<<buffer<<endl;
len += strlen(buffer);
if(len == strlen(str)) break;
len++;
tmp = atoi(str+len);
_itoa(tmp, buffer, 10);
}
delete buffer;

}
jxdsp 2003-10-17
  • 打赏
  • 举报
回复
strtok吧,通用性强些
buaaaladdin 2003-10-16
  • 打赏
  • 举报
回复
奇怪,为什么没人用strtok,很好用的函数啊,强烈推荐。
qiuzhang 2003-10-16
  • 打赏
  • 举报
回复
完全可用版
#include "stdio.h"
#include "string.h"
main()
{
char xyz[] = "1234*567*8910";
char *p;

p = xyz;
while(*p)
{
if(*p != '*')
{
putchar(*p);
}
else
{
printf("\n");
}
p++;
}
printf("\n");
}
sharkhuang 2003-10-16
  • 打赏
  • 举报
回复
boxban(master-dreamer) 的是标准c的做法!
蝎子i软件 2003-10-16
  • 打赏
  • 举报
回复
while( *s ){
if( *s!='*' )
putchar( *s );
++s;
}
测量猿 2003-10-16
  • 打赏
  • 举报
回复
用CString 最好
Bandry 2003-10-16
  • 打赏
  • 举报
回复
char str[] = "12345*67890*34567";
char sep[] = "*";
char *pdest = NULL;
pdest = strstr(str, sep);
while ( pdest != NULL )
{
*pdest = '\n';
pdest = strstr(str, sep);
}
printf("%s", str);
roselu 2003-10-16
  • 打赏
  • 举报
回复
同意 larryvc() 的做法!
Weigehoho 2003-10-16
  • 打赏
  • 举报
回复
while(*s)
{
if( *s!='*' )
putchar(*s++);
else if(*s=='*')
printf("\n");
else
break;

}
liansdan 2003-10-16
  • 打赏
  • 举报
回复
在“str++;"加上

printf("\n");更好
liansdan 2003-10-16
  • 打赏
  • 举报
回复
char * str="12345*67890*34567"
while(1)
{
while(*str!='*'){
printf("%c",*str++);
if(*str=='\0') break;
}
str++;
}
上面那个有点错,大概的内容如此吧!不是很清楚,望谅解!!!
henghengpig 2003-10-16
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{
printf("\n123456789034567\n");
}
liansdan 2003-10-16
  • 打赏
  • 举报
回复
char * str="12345*67890*34567"
while(1)
{
while(*str!='*'){
printf("%c",*str++);
}
if(*str=='\0') break;
str++;
}
大致辞
mahumahu 2003-10-16
  • 打赏
  • 举报
回复
用STL
boxban 2003-10-16
  • 打赏
  • 举报
回复
#include <string.h>
#include <stdio.h>

char string[] = "12345*67890*34567";
char seps[] = "*";
char *token;

void main( void )
{
printf( "%s\n\nTokens:\n", string );
/* Establish string and get the first token: */
token = strtok( string, seps );
while( token != NULL )
{
/* While there are tokens in "string" */
printf( " %s\n", token );
/* Get next token: */
token = strtok( NULL, seps );
}
}
liao2001 2003-10-16
  • 打赏
  • 举报
回复
楼上的代码。。。空间都没
sscanf(str,"%d*%d*%d",a,b,c);

或自己一个个字符读取,用*和0做分界符
JetGeng 2003-10-16
  • 打赏
  • 举报
回复
可以用strstr找出个各子窜的位置在用楼上的memcpy就搞定了。
larryvc 2003-10-16
  • 打赏
  • 举报
回复
char * str="12345*67890*34567"

char* str1=memcpy(str,str1,5);
char* str2=memcpy(str+6,str2,5);
char* str3=memcpy(str+12,str3,5);

69,335

社区成员

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

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