当前位置: 代码迷 >> C语言 >> itoa函数问题!
  详细解决方案

itoa函数问题!

热度:165   发布时间:2006-05-07 14:09:00.0
itoa函数问题!

itoa()函数返回指向字符型的指针,下面怎么不行

#include <stdio.h>
#include <conio.h>
#define N 10

int main(void)
{
int i = 1994, j;
char str[N] = {'\0'}, strb[N] = {'\0'};

strb[10] = itoa(i, str, 10);

printf("%s\n", strb);

getch();
return 0;
}

以上为什么不行

搜索更多相关的解决方案: itoa  函数  int  include  void  

----------------解决方案--------------------------------------------------------

itoa属于stdlib.h


----------------解决方案--------------------------------------------------------
楼上的你说点具体的,要是在TC中你一个头文件不加都可以
----------------解决方案--------------------------------------------------------
以下是引用论坛在2006-5-7 14:09:00的发言:

itoa()函数返回指向字符型的指针,下面怎么不行

#include <stdio.h>
#include <conio.h>
#define N 10

int main(void)
{
int i = 1994, j;
char str[N] = {'\0'}, strb[N] = {'\0'};

strb[10] = itoa(i, str, 10);  /*函数用错,应该只为 itoa(i, str, 10);不能把返回值赋给strb[10],这明显已经越界*/

printf("%s\n", strb); /*这个字符串仍然是空的,打印当然也为空*/

getch();
return 0;
}

以上为什么不行


----------------解决方案--------------------------------------------------------

函数是返回指向字符串首地址的指针,即便你把strb[10]改成strb也是出错的,
因为,strb已指向一定的数组空间,会造成混乱.


----------------解决方案--------------------------------------------------------
strb[10] = itoa(i, str, 10);


你改成strb = itoa(i, str, 10);它也不行
----------------解决方案--------------------------------------------------------

#include <stdio.h>
#include <conio.h>
#define N 10

int main(void)
{
int i = 1994, j;
char str[N] = {'\0'}, *strb;

strb = itoa(i, str, 10);

printf("%s\n", strb);

getch();
return 0;
}
这样就可以


----------------解决方案--------------------------------------------------------
是滴
----------------解决方案--------------------------------------------------------

#include <stdio.h> /* 此处应为#include <stdlio.h> */
#include <conio.h>
#define N 10

int main(void)
{
int i = 1994, j;
char str[N] = {'\0'}, strb[N] = {'\0'};

strb[10] = itoa(i, str, 10); /* strb[10]不是指针变量 ,怎能接收itoa返回的地址? */

printf("%s\n", strb);

getch();
return 0;
}



#include <stdlib.h>
#include <conio.h>
#define N 10

int main(void)
{
int i = 1994, j;
char str[N] = {'\0'}, *p;

p = itoa(i, str, 10);

printf("%s\n", p);

getch();
return(0);

}



[此贴子已经被作者于2006-5-7 15:39:20编辑过]


----------------解决方案--------------------------------------------------------

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#define N 10

int main(void)
{
int i = 1994;
char str [N];

itoa(i, str, 10);/*"产品"在str[]中*/

printf("%s\n", str);

getch();
return 0;
}


----------------解决方案--------------------------------------------------------