首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

字符串 如何出了 # 这个字符

2012-02-16 
字符串 怎么出了 # 这个字符编一个改名程序#include stdio.h#include stdlib.h#include time.h#incl

字符串 怎么出了 # 这个字符
编一个改名程序
#include <stdio.h> 
#include <stdlib.h>
#include <time.h>
#include <io.h> 
#include <string.h>
#include <windows.h> 
int main(int argc, char* argv[])
{
  struct _finddata_t f;
  long p;
  char* c,*s1,ss[11];
  int i;
  p=_findfirst("*.Unknown",&f);
  c=strstr(f.name,"pdg");
  strncpy(ss,c-7,10);
  rename(f.name,ss);
  while(_findnext(p,&f)==0)
  {c=strstr(f.name,"pdg");
  strncpy(ss,c-7,10);
  rename(f.name,ss);}
  return 0;
}
改名之后总变成"pdg#" 的形式,#怎么来的?
如果用printf打印ss,也是pdg加一个乱码。
请教了


[解决办法]
在char ss[11];后面加一句:
memset(ss, 0, 11);或者 ss[10]= '\0';
就可以了!
注意:字符串是以'\0'结尾的!
[解决办法]
strncpy(ss,c-7,10); 
strncpy不会自动拷贝'\0'的
[解决办法]
以上结论你可以自己试验一下,就在你上面的代码里设一个断点,然后看f.name 地址和 c的地址相差多少。就能知到c是否指向f.name串内的某个字符

热点排行