JayChen 发表于 2015-4-22 12:32:06

求教这个里面为什么会出现乱码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

char *convert(int n,char *s)
{
        char c;
        c=n%10+'0';
        strcat(s,c);
        n/=10;
        if(n!=0)
                convert(n,s);
        else
                return s;

}
int main()
{
        int n;
        char s,*str;
        scanf("%d",&n);
        str=convert(n,s);
intf("%s\n",str);
}

Mr.屎壳螂 发表于 2015-4-22 18:11:05

你先说你这个程序要干啥

JayChen 发表于 2015-4-22 20:32:31

Mr.屎壳螂 发表于 2015-4-22 18:11
你先说你这个程序要干啥

将整数n转化成字符串

仰望天上的光 发表于 2015-4-22 20:53:27

JayChen 发表于 2015-4-22 20:32
将整数n转化成字符串

字符串没有以 '\0'结尾

JayChen 发表于 2015-4-22 23:08:11

仰望天上的光 发表于 2015-4-22 20:53
字符串没有以 '\0'结尾

大赞!,谢谢,我以为字符串结束会自动加上\0

JayChen 发表于 2015-4-22 23:10:03

还是推荐一个库函数吧,比我这个好多了,sprintf(char *s,"%d",n);这样会把n转化成字符串存储在s数组中,我的还没有将转化后的字符串倒过来

沫丶尛希 发表于 2015-4-23 19:43:03

学习了。

Miracle-s 发表于 2015-4-23 23:16:17

能不能把你弄好的源代码弄来,加了‘\0’还是乱码

myqicq 发表于 2015-4-23 23:46:26

淡定,淡定,淡定……

JayChen 发表于 2015-4-24 13:19:18

Miracle-s 发表于 2015-4-23 23:16
能不能把你弄好的源代码弄来,加了‘\0’还是乱码


#include<stdio.h>

#include<stdlib.h>

#include<string.h>

//这个turnover函数是为了将字符串调转过来,因为convert函数中将n转换成字符串后字符串是倒着的

//就是利用了一个中间变量将字符串数组s首尾依次交换

char *turnover(char *s)

{

int i,j;    // 临时变量

char c;   // 临时变量

j=strlen(s)-1;   // 获取字符串有字符的长度因为字符串后又'\0',所以减1

for(i=0;i<=j/2;i++)// 循环一次交换

{

c=s;

s=s;

s=c;

}

return s;

}

// 将整数n转换成字符串

char *convert(int n,char *s)

{

char c[]={'0','\0'}; // 临时变量,用于存储从n上一次剥落的字符

c=n%10+'0';   // 将n的个位转化成字符,存储在c中

strcat(s,c);   // 连接s与c

n/=10;   // n被剥落一位就减去一位

if(n!=0)    // 递归开始。。。

convert(n,s);

else

return turnover(s);

}

int main()

{

int n;

char s,*str;

scanf("%d",&n);

str=convert(n,s);

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

}

JayChen 发表于 2015-4-24 13:20:02

本帖最后由 JayChen 于 2015-4-24 13:21 编辑




#include<stdio.h>

#include<string.h>

int main()

{

char buffer;

int n,i;

scanf("%d",&n);

i=sprintf(buffer,"%d",n);

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

printf("%d",i);

}



yhh2530080997 发表于 2015-4-25 16:25:47

:lol::lol::lol:
页: [1]
查看完整版本: 求教这个里面为什么会出现乱码