刚才编写了个程序,虽然能提取数字了,但是并不能实现500,50,4000是三个数值啊?
请问 各位高手:如何将字符串里的 500, 50, 4000,都存储在一个整型数组里啊?
11 个解决方案
#1
看C程序设计题解与上级指导122页 10.16
#2
调用函数atoi转换一下就可以了
#3
atoi() atof();等
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main ()
{
double n,m;
double pi=3.1415926535;
char szInput [256];
printf ( "Enter degrees: " );
gets ( szInput );
n = atof ( szInput );
m = sin (n*pi/180);
printf ( "The sine of %f degrees is %f\n" , n, m );
return 0;
}
#4
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main()
{
char array[40];
int i;
gets(array);
int IsNumber=0;
for(i=0; array[i]!='\0'; i++)
{
if(array[i]>='0'&&array[i]<='9')
{
printf("%c", array[i]);
IsNumber=1;
}
if(array[i]==' '&&IsNumber==1)
{
printf(" ");
IsNumber=0;
}
}
printf("\n");
}
#include<stdlib.h>
#include<string.h>
void main()
{
char array[40];
int i;
gets(array);
int IsNumber=0;
for(i=0; array[i]!='\0'; i++)
{
if(array[i]>='0'&&array[i]<='9')
{
printf("%c", array[i]);
IsNumber=1;
}
if(array[i]==' '&&IsNumber==1)
{
printf(" ");
IsNumber=0;
}
}
printf("\n");
}
#5
++
#6
http://hi.baidu.com/jiaolingqi/blog/item/3fb63a9ba776cdb4c9eaf4b5.html
#7
C#窗体应用程序: 用了三个控件 textBox1里放置要提取的字符串
button1 点击获得结果
textBoxResult里放置提取出的数字
button1 点击获得结果
textBoxResult里放置提取出的数字
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace GetNumber
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string str = textBox1.Text;
string number="";
List<Int32> myList = new List<int>();
for (int i = 0; i < str.Length; ++i)
{
if (str[i] >= '0' && str[i] <= '9')
{
number += str[i];
if (i == str.Length - 1)
{
myList.Add(Convert.ToInt32(number));
}
}
else
{
if (!res.Equals(""))
{
myList.Add(Convert.ToInt32(number));
res = "";
}
}
}
for (int i = 0; i < myList.Count; ++i)
{
textBoxResult.Text += myList[i];
textBoxResult.Text += " ";
}
}
}
}
#8
上面的代码有个小问题修整下:
结果如下图:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace GetNumber
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string str = textBox1.Text;
string number="";
List<Int32> myList = new List<int>();
for (int i = 0; i < str.Length; ++i)
{
if (str[i] >= '0' && str[i] <= '9')
{
number += str[i];
if (i == str.Length - 1)
{
myList.Add(Convert.ToInt32(number));
}
}
else
{
if (!number.Equals(""))
{
myList.Add(Convert.ToInt32(number));
number = "";
}
}
}
for (int i = 0; i < myList.Count; ++i)
{
textBoxResult.Text += myList[i];
textBoxResult.Text += " ";
}
}
}
}
结果如下图:
#9
#include <iostream>
#include <cstdio>
using namespace std;
void findNum(const char *str)
{
int result=0;
while(*str!=0)
{
if('0'<=*str && *str<='9')
{
result=result*10+*str-'0';
}
else
{
if(result!=0)
{
cout<<result<<endl;
result=0;
}
}
++str;
}
}
int main()
{
char buffer[200];
fgets(buffer,200,stdin);
findNum(buffer);
return 0;
}
一等奖 奖金500万 二等奖 奖金 50万 三等奖 奖 4000
500
50
4000
请按任意键继续. . .
#10
sprintf参数说明及应用举例
sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数$][标识符][宽度][.精度]指示符
若想输出`%'本身时, 请这样`%%'处理。
1. 处理字符方向。负号时表示从后向前处理。
2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。
3. 字符总宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
转换字符
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
<?
$money = 123.1
$formatted = sprintf ("%06.2f", $money); // 此时变数 $ formatted 值为 "123.10"
$formatted = sprintf ("%08.2f", $money); // 此时变数 $ formatted 值为 "00123.10"
$formatted = sprintf ("%-08.2f", $money); // 此时变数 $ formatted 值为 "123.1000"
$formatted = sprintf ("%.2f%%", 0.95 * 100); // 格式化为百分比
?>
http://baike.baidu.com/view/1295144.htm
sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数$][标识符][宽度][.精度]指示符
若想输出`%'本身时, 请这样`%%'处理。
1. 处理字符方向。负号时表示从后向前处理。
2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。
3. 字符总宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
转换字符
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
<?
$money = 123.1
$formatted = sprintf ("%06.2f", $money); // 此时变数 $ formatted 值为 "123.10"
$formatted = sprintf ("%08.2f", $money); // 此时变数 $ formatted 值为 "00123.10"
$formatted = sprintf ("%-08.2f", $money); // 此时变数 $ formatted 值为 "123.1000"
$formatted = sprintf ("%.2f%%", 0.95 * 100); // 格式化为百分比
?>
http://baike.baidu.com/view/1295144.htm
#11
大哥你给介绍一下IsNumber的含义行不?
#1
看C程序设计题解与上级指导122页 10.16
#2
调用函数atoi转换一下就可以了
#3
atoi() atof();等
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main ()
{
double n,m;
double pi=3.1415926535;
char szInput [256];
printf ( "Enter degrees: " );
gets ( szInput );
n = atof ( szInput );
m = sin (n*pi/180);
printf ( "The sine of %f degrees is %f\n" , n, m );
return 0;
}
#4
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void main()
{
char array[40];
int i;
gets(array);
int IsNumber=0;
for(i=0; array[i]!='\0'; i++)
{
if(array[i]>='0'&&array[i]<='9')
{
printf("%c", array[i]);
IsNumber=1;
}
if(array[i]==' '&&IsNumber==1)
{
printf(" ");
IsNumber=0;
}
}
printf("\n");
}
#include<stdlib.h>
#include<string.h>
void main()
{
char array[40];
int i;
gets(array);
int IsNumber=0;
for(i=0; array[i]!='\0'; i++)
{
if(array[i]>='0'&&array[i]<='9')
{
printf("%c", array[i]);
IsNumber=1;
}
if(array[i]==' '&&IsNumber==1)
{
printf(" ");
IsNumber=0;
}
}
printf("\n");
}
#5
++
#6
http://hi.baidu.com/jiaolingqi/blog/item/3fb63a9ba776cdb4c9eaf4b5.html
#7
C#窗体应用程序: 用了三个控件 textBox1里放置要提取的字符串
button1 点击获得结果
textBoxResult里放置提取出的数字
button1 点击获得结果
textBoxResult里放置提取出的数字
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace GetNumber
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string str = textBox1.Text;
string number="";
List<Int32> myList = new List<int>();
for (int i = 0; i < str.Length; ++i)
{
if (str[i] >= '0' && str[i] <= '9')
{
number += str[i];
if (i == str.Length - 1)
{
myList.Add(Convert.ToInt32(number));
}
}
else
{
if (!res.Equals(""))
{
myList.Add(Convert.ToInt32(number));
res = "";
}
}
}
for (int i = 0; i < myList.Count; ++i)
{
textBoxResult.Text += myList[i];
textBoxResult.Text += " ";
}
}
}
}
#8
上面的代码有个小问题修整下:
结果如下图:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace GetNumber
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string str = textBox1.Text;
string number="";
List<Int32> myList = new List<int>();
for (int i = 0; i < str.Length; ++i)
{
if (str[i] >= '0' && str[i] <= '9')
{
number += str[i];
if (i == str.Length - 1)
{
myList.Add(Convert.ToInt32(number));
}
}
else
{
if (!number.Equals(""))
{
myList.Add(Convert.ToInt32(number));
number = "";
}
}
}
for (int i = 0; i < myList.Count; ++i)
{
textBoxResult.Text += myList[i];
textBoxResult.Text += " ";
}
}
}
}
结果如下图:
#9
#include <iostream>
#include <cstdio>
using namespace std;
void findNum(const char *str)
{
int result=0;
while(*str!=0)
{
if('0'<=*str && *str<='9')
{
result=result*10+*str-'0';
}
else
{
if(result!=0)
{
cout<<result<<endl;
result=0;
}
}
++str;
}
}
int main()
{
char buffer[200];
fgets(buffer,200,stdin);
findNum(buffer);
return 0;
}
一等奖 奖金500万 二等奖 奖金 50万 三等奖 奖 4000
500
50
4000
请按任意键继续. . .
#10
sprintf参数说明及应用举例
sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数$][标识符][宽度][.精度]指示符
若想输出`%'本身时, 请这样`%%'处理。
1. 处理字符方向。负号时表示从后向前处理。
2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。
3. 字符总宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
转换字符
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
<?
$money = 123.1
$formatted = sprintf ("%06.2f", $money); // 此时变数 $ formatted 值为 "123.10"
$formatted = sprintf ("%08.2f", $money); // 此时变数 $ formatted 值为 "00123.10"
$formatted = sprintf ("%-08.2f", $money); // 此时变数 $ formatted 值为 "123.1000"
$formatted = sprintf ("%.2f%%", 0.95 * 100); // 格式化为百分比
?>
http://baike.baidu.com/view/1295144.htm
sprintf格式的规格如下所示。[]中的部分是可选的。
%[指定参数$][标识符][宽度][.精度]指示符
若想输出`%'本身时, 请这样`%%'处理。
1. 处理字符方向。负号时表示从后向前处理。
2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。
3. 字符总宽度。为最小宽度。
4. 精确度。指在小数点后的浮点数位数。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
转换字符
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
%% 印出百分比符号,不转换。
%c 整数转成对应的 ASCII 字元。
%d 整数转成十进位。
%f 倍精确度数字转成浮点数。
%o 整数转成八进位。
%s 整数转成字符串。
%x 整数转成小写十六进位。
%X 整数转成大写十六进位。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
<?
$money = 123.1
$formatted = sprintf ("%06.2f", $money); // 此时变数 $ formatted 值为 "123.10"
$formatted = sprintf ("%08.2f", $money); // 此时变数 $ formatted 值为 "00123.10"
$formatted = sprintf ("%-08.2f", $money); // 此时变数 $ formatted 值为 "123.1000"
$formatted = sprintf ("%.2f%%", 0.95 * 100); // 格式化为百分比
?>
http://baike.baidu.com/view/1295144.htm
#11
大哥你给介绍一下IsNumber的含义行不?