在c语言中如何取一个字符串的前几位?

zheshizadele 2006-03-27 03:24:23
谢谢!还有如果定义一个字符串为char* s= "20050422"(日期),那“20050421”用s是怎么表示的
...全文
3839 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
屋顶上的老猫 2006-03-27
  • 打赏
  • 举报
回复
呵呵,这么做当然要加几个判断!
晨星 2006-03-27
  • 打赏
  • 举报
回复
如果可以“atoi()-1”,那么“20050401”减1岂不成了“20050400”了?
jiangjundu 2006-03-27
  • 打赏
  • 举报
回复
int main(void)
{
char*s="1234567890";
char c[20];
char *p=c;
while(*s!='\0')
*p++=*s++;
*p='\0';
//
int i=0;
while(c[i]!='\0'){
printf("the %d'th char is %c\n",i,c[i++]);//访问
}
return 0;
}
屋顶上的老猫 2006-03-27
  • 打赏
  • 举报
回复
...itoa()
屋顶上的老猫 2006-03-27
  • 打赏
  • 举报
回复
atoi()-1;
goodluckyxl 2006-03-27
  • 打赏
  • 举报
回复
我怎么看的有点晕
你到底问的是什么
晨星 2006-03-27
  • 打赏
  • 举报
回复
(1)可以考虑使用strncpy函数;
(2)没有直接的办法,如果需要用到日期运算,那么原始数据不该用字符串保存,而应该使用时间相关的类型,比如:time_t,需要时再通过相应的函数转换成字符串。
jinjiajie 2006-03-27
  • 打赏
  • 举报
回复
人家是用*s.....
jinjiajie 2006-03-27
  • 打赏
  • 举报
回复
kunp(一天一小步)

这个明显不行....s[7]的内存地址是静态地址,怎么修改
kunp 2006-03-27
  • 打赏
  • 举报
回复
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
char s[] = "20050422";
cout << s << endl;
s[7] = '1';
cout << s << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
jinjiajie 2006-03-27
  • 打赏
  • 举报
回复
.......你将指针指向了个静态区域,这个区域是不能改的,只能再开辟个区域,将该字符串拷入这个区域后做修改
kunp 2006-03-27
  • 打赏
  • 举报
回复
s[7] = '1'

69,371

社区成员

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

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