字符串,整数的互转

来源:互联网 发布:磁力链接网站源码 编辑:程序博客网 时间:2024/05/16 08:40

#include <stdlib.h>
#include <stdio.h>
#include<string.h>
//long ctolong(char *s);
void itoc(int ,char*);
/*
int main(void)
{
long l;
char *str = "98765432";
l = atol(str);
printf("string = %s integer = %ld\n", str, l);
return(0);
}
*/

int main(void)
{
 //long l;
 char *str = "987654321";
 //l = ctolong(str);
 int m = -123;
 char ss[10];
 itoc(m,ss);
 //printf("str = %s, l = %ld\n",str,l);
 printf("ss = %s\n",ss);
 return 0;
}

long ctolong(char *s)
{
 long sum=0;
 int len = strlen(s);
 printf("%s\n",s);
 for (int i = 0;i < len;i++)
 {
  sum = sum*10 + (s[i]-'0');//把字符转换成整数
  //printf("%d\n",(s[i]-'0'));
 // printf("%ld\n",sum);
 }
 // printf("%ld\n",sum);
 return sum;
}

void itoc(int n,char *str)
{
 char buf[10] = "";
 int i = 0;
 int len = 0;
 int temp = n < 0?-n:n;
 if (str==NULL)
 {
  return;
 }
 while (temp)
 {
  buf[i++] = (temp%10) + '0';//+'0'把整数转化为字符
  temp = temp / 10;
 }
 len = n < 0 ? ++i:i;//n是负数,则多需一位来存储负号
 str[i] = 0;//末尾是结束符0
 while (1)
 {
  i--;
  if (buf[len-i-1]==0)
  {
   break;
  }
  str[i] = buf[len-i-1];//把buf数组里的字符拷到字符串
 }
 if (i==0)
 {
  str[i] = '-';
 }
 printf("%s\n",str);
}

原创粉丝点击