c语言数字拼接成字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言数字拼接成字符串相关的知识,希望对你有一定的参考价值。

void find_non_ch(const char* str);

void main()

char str[] = "你12好";

find_non_
void
find_non_ch(const char* str)

int o;
for (o = 0; o < strlen(str); o++)

if (str[o] >= 0 && str[o] <= 127)
printf("nuber--%d\n", o);


谁能帮我把打印的 printf("nuber--%d\n", o);数字拼接起来,变成字符串返回

你是想把ascii在0~127之间的字符变成int打印出来?
子函数是这么干的,没啥问题,你是想把他返回吧
这个也不难啊,在str这个字符串中做即可
就是把不在在这个范围内的字符去掉,后面的向前挪一下就搞定了
printf("nuber--%d\n", o)这个该一下,前面加一个变量如k=0;
这一句变成
str[k++]=str[o];即可
那么str就是返回的字符串,记得最后加上str的结束符,在主函数中打印即可
参考技术A char* find_non_ch(const char* str)

int o;
char *strRt;
strRt = new char[strlen(str)+1];
memset(strRt, 0, strlen(str)+1);
for (o = 0; o < strlen(str); o++)

if (str[o] >= 0 && str[o] <= 127)
sprintf(strRt,"%s%d", strRt,o);

return strRt;

注意用完后把返回值delete掉
参考技术B 例子一:

#include <stdio.h>

int main(void)

char str[] = "你12好";

int i;
for(i = 0; i < strlen(str); i++)

printf("%d\n",*(str+i));

return 0;

打印结果:
-28
-67
-96
49
50
-27
-91
-67

例子二:

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

void find_non_ch(const char *str)

int i = 0;

for(i = 0; i < strlen(str); i++)

if(*(str+i) >= 0 && *(str+i) <= 127)
printf("num-- %d\n",*(str+i));



int main(void)

char str[] = "你12好";

find_non_ch(str);

return 0;


打印结果:
num-- 49
num-- 50
参考技术C find_non_ch(const char* str)

int o;
char* pReStr = (char*) malloc(100);
memset(pReStr,0x00,100);
char tmp[3]=0;

for (o = 0; o < strlen(str); o++)

if (str[o] >= 0 && str[o] <= 127)

printf("nuber--%d\n", o);
sprintf(tmp,"%d",o);
strcat(pReStr,tmp);



return pReStr;
本回答被提问者采纳
参考技术D 没看懂你要问什么,可以说具体点么? 比如说举个例子。追问

char str[] = "12代12";传入的
判断后腰得到12的索引下标非汉字的索引下标
返回结果应该是“nuber:1-2-5-6”
因为下标1256是非汉字字符
所以我怎么把这个下标的数字拼接成一个字符返回去,现在不是void么要有返回值的

C语言如何实现把两个整型数字拼接起来仍然是整型数字

#include<stdio.h>
int main() 
int a,b,t=9;
 scanf("%d%d",&a,&b);
 while(t<b)t=t*10+9;
 t=(t+1)*a+b;
 printf("%d\\n",t);
 return 0;

参考技术A

前提:拼起来的数字不能导致整数溢出。判断前一个数是几位的,将前一个数乘以10的几次方,然后求和。

#include<stdio.h>
void main()  int x,xx,y,z;
  scanf("%d%d",&x,&y); xx=x;
  while ( xx )  x*=10; xx/=10; 
  z=x+y;
  printf("%d\\n",z);

本回答被提问者采纳
参考技术B

左边的乘以十的右边位数次方,这样就相当于位移,然后再把两个值相加就可以了。我在windows下写的下面这段示例代码,运行无误

#include <math.h>
#include <stdio.h>


int main()

int a=1234,b=5678;//要拼接的两个数 
int result = b;//每次除以10的结果 
int pingjie = 0;//拼接结果 
int i = 0;//右边数的位数 

for(i=0;result>=10;i++)
    result = result/10;

a = a*pow(10,i+1);

pingjie = a+b;
printf("%d",pingjie);
        return 0;

以上是关于c语言数字拼接成字符串的主要内容,如果未能解决你的问题,请参考以下文章

C语言 拼数字

C语言,将数字和字符串拼成一个字符串。用宏来做,用api谁都会!

C语言如何实现把两个整型数字拼接起来仍然是整型数字

(c语言)拼接字符

javascript中字符串和数字怎么拼接

C 数字转 字符串