C语言,目的:输入一串数字,用空格隔开,然后赋值给数组

C语言,目的:输入一串数字,用空格隔开,然后赋值给数组,第1张

你的程序和你的题目相差悬殊呀,我想你的本意应该是:
输入:123 456 789 ,然后分割赋值
a[0] = 123;
a[1] = 456;
a[2] = 789;
是这个意思吧
#include<stdioh>
#include<stringh>
int main(void)
{
char a[100];
char c[] = " ";
printf("请输入一串数字:");
gets(a);
printf("分割后的数字是:\n");
printf("%s\n",strtok(a,c));
char p = strtok(NULL,c);
while(p)
{
printf("%s\n",p,c);
p = strtok(NULL,c);
}
return 0;
}

可以自己定义一个函数来完成,举例如下:
//#include "stdafxh"//If the vc++60, with this line
#include "stdioh"
/本函数将源字符串s中第n个下标开始的m个字符拷入目标t并在最后补'\0'/
char myfun(char t,const char s,int n,int m){
char p=t;
if(m){//m为0时特殊处理返回NULL
s+=n;
while(p++=s++, --m && s);
p='\0';
return t;
}
return NULL;
}
int main(void){//测试一下
char a[10];
char b="abcdefghi";
printf("%s\n",myfun(a,b,1,3));
return 0;
}

第一:要有输入的判断,用户输入的是否是数字,可用el表达式进行判断,
第二:输入框得到输入的数字,传到后台,后台接收后存入数组中,赋值为int[][],或int[],变量。
第三:最好经过dao层后存到数据库。

#include <iostream>
using namespace std ;
//求一个数有多少位
int GetDigitCount(int n)
{
int c = 0 ;
while (n)
{
n /= 10 ;
++c ;
}
return c ;
}
int main(void)
{
int num = 12345 ;

//取得数字的位数
int c = GetDigitCount(num) ;
//动态分配数组
int a = new int[c] ;
//用数字各位填充数组,注意倒着填充
for (int i = c - 1; i >= 0; --i)
{
a[i] = num % 10 ;
num /= 10 ;
}
//输出数组中的数据
for (int i = 0; i < c; ++i)
{
cout << a[i] ;
}
cout << endl ;
delete a ;
a = NULL ;

system("pause") ;
return 0 ;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13390717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存