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);数字拼接起来,变成字符串返回
子函数是这么干的,没啥问题,你是想把他返回吧
这个也不难啊,在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语言数字拼接成字符串的主要内容,如果未能解决你的问题,请参考以下文章