将字符串a中的数字取出存储到b中,用C语言指针怎么实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将字符串a中的数字取出存储到b中,用C语言指针怎么实现相关的知识,希望对你有一定的参考价值。
例如char *a="Hello123world456"中数字取出存放在char *b中。
你可以使用C语言中的指针和字符数组来实现该功能。下面是一段示例代码:c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
char *a = "Hello123world456";
char *b = (char*)malloc(strlen(a) * sizeof(char)); // 分配存储数字的数组b的空间
char *p = a; // 定义指针p指向a
int i = 0; // 定义计数器i
while (*p) // 循环遍历a中的每个字符
if (isdigit(*p)) // 如果当前字符是数字
b[i] = *p; // 将数字存储到数组b中
i++; // 计数器加1
p++; // 指针p指向下一个字符
b[i] = '\0'; // 在数组b的最后加上结束符'\0'
printf("Digits in string a: %s\n", b);
free(b); // 释放数组b的空间
return 0;
上述代码中,使用指针p遍历字符串a中的每个字符,如果当前字符是数字,则将其存储到数组b中。最后输出存储在数组b中的数字。需要注意,在数组b的最后要加上结束符\0。 参考技术A char * b = (char*) malloc(strlen(a));
int k = 0;
for(int i = 0; i < strlen(a); i++)
if(a[i] >='0' && a[i] <='9')
b[k++] = a[i];
b[k] = ‘\0’;
请采纳,谢谢
C语言将数字转换为字符型输出(用函数)
对聪明点的人都应该挺简单,我就是想不通调用函数的时候是整型,返回函数的时候需要返回字符数组,需要怎么做?谢谢……尽量不要用指针,我们老师没讲过,我自学指针不咋滴啊
可以使用sprintf函数实现功能。sprintf的声明为
int sprintf(char *dst, const char * format_str...);
其功能为:将...部分的参数,按照format_str的要求,输入到dst中。
需要根据数字的类型,使用format_str。
如整型(int)的使用方式为
sprintf(buf, "%d", a);
如果a为123,那么buf中的字符串为"123"。
常见的数字类型还有:
1 short, 用%h输出;
2 long, 用%ld输出;
3 float, 用%f输出;
4 double, 用%lf输出。 参考技术A 给,已经编译运行确认:
#include<conio.h>
#include<stdio.h>
char s[20]=NULL;//用以存放字符型输出结果的字符数组
void inttostring(int n)//转换用的函数
int i=0,j;
char temp;
while(n)//先将整数逆序保存进数组
s[i]=n%10+'0';//将十进制数字转换成字符保存
n=n/10;
i++;
for(j=i-1;j>=i/2;j--)//再将逆序的字符结果再逆转一次,得到正确结果
temp=s[j];
s[j]=s[i-j-1];
s[i-j-1]=temp;
int main()
int i;
printf("please input a number: ");
scanf("%d",&i);
inttostring(i);
printf("String is: %s",s);
getch();
return 0;
本回答被提问者采纳 参考技术B 最简单的方法就是用sprintf函数,直接把整型变量输出到一个字符串中(当然就可以用字符数组),复杂一点就是LS说的那样把一个整数每一位取出,放到字符数组中,代码我就不写了,参考LS的。
简单示例sprintf函数:
#include <stdio.h>
#include <stdlib.h>
int main(void)
char str[10];
int i = 12345;
sprintf(str,"%d",i);
printf("str = %s\n",str);
return 0;
参考技术C 你是自学的?那就自己动手试一下吧,我也是自学吧。不过是因为自己进度比老师快罢了。
我说个思路吧,就不给你学程序段了。最简单的方法就是“打散输出”,比如135这个整数,你可以把它的百位、十位、各位分别取出,用字符数组存放,再用for循环输出。
你先动手自己试一下,我的经验就是自己动手永远比老师告诉你现成的程序强! 参考技术D 不用指针怎么行呢?
下面这个程序供参考
#include "stdio.h"
#include "stdlib.h"
void main()
int b;
char str[10];
printf("Please input an int:\n");
scanf("%d",&b);
itoa(b,str,10);///这个函数为stdlib.h库中的库函数
printf("%s",str);
以上是关于将字符串a中的数字取出存储到b中,用C语言指针怎么实现的主要内容,如果未能解决你的问题,请参考以下文章
c语言 用指针方法处理:输入一行字符,统计并输出其中大写字母、小写字母、空格、数字及其它字符的个数。