一、C语言中数据转换中数字与字符串
1.atof()函数:将字符串转换为double型
扫描参数str字符串,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(’\0’)才结束转换,并将结果返回。参数str 字符串可包含正负号、小数点或E(e)来表示指数部分,如123. 456 或123e-2。返回转换后的浮点数;如果字符串 str 不能被转换为 double,那么返回 0.0。
#include <stdio.h>
#include <stdlib.h> //调用头文件
int main(){
char *a = "-100.23",
*b = "200e-2",
*c = "341",
*d = "100.34cyuyan",
*e = "cyuyan";
printf("a = %.2f\n", atof(a)); //a=-100.23
printf("b = %.2f\n", atof(b)); //b=2.00
printf("c = %.2f\n", atof(c)); //c=341.00
printf("d = %.2f\n", atof(d)); //d=100.34
printf("e = %.2f\n", atof(e)); //e=0.00
system("pause");
return 0;
}
2.atoi()函数:将字符串转换成int
a="1235564";
b=atoi(a); //b转换为整数
3._itoa()函数:把int转换成字符串
char *_itoa( int value, char *str, int radix );原型说明:value:欲转换的数据,string:目标字符串的地址,radix:转换后的进制数,可以是10进制、16进制等,范围必须在 2-36。功能:将整数value 转换成字符串存入string 指向的内存空间 ,radix 为转换时所用基数(保存到字符串中的数据的进制基数)。
4.函数atof(): 把字符串转换成浮点数;
返回值:每个函数返回 double 值,此值由将输入字符作为数字解析而生成。 如果该输入无法转换为该类型的值,则返回值为 0.0。atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(’\0’)才结束转换,并将结果返回,nptr字符串可包含正负号、小数点或E(e)来表示指数部分。
a="5.365"; //atof(a) 结果5.365
b="sghj5.65jk" //atof(b) 结果5.65
c="shjhdu" //atof(c) 结果0.0
5.sprintf函数 数据(浮点数或者整型)转换为字符串
sprintf( char *buffer, const char *format [, argument,…] );
除了前两个参数固定外,可选参数可以是任意个。buffer是字符数组名;format是格式化字符串(像:”%3d%6.2f%#x%o”,%与#合用时,自动在十六进制数前面加上0x)。
char str[20];
double f=14.309948;
sprintf(str,”%6.2f”,f);
可以将多个数值数据连接起来
char str[20];
int a=20984,b=48090;
sprintf(str,”%3d%6d”,a,b);
str[]=”20984 48090”
可以将多个字符串连接成字符串
char str[20];
char s1[5]={‘A’,’B’,’C’};
char s2[5]={‘T’,’Y’,’x’};
sprintf(str,”%.3s%.3s”,s1,s2);
%m.n在字符串的输出中,m表示宽度,字符串共占的列数;n表示实际的字符数。%m.n在浮点数中,m也表示宽度;n表示小数的位数。
二.unsigned和fabs
要求原码为8位数 数字 3 原码 00000011
反码 11111100(按位取反)
补码 11111101(末位加一) ==254
所以unsigned a=-3时会输出结果254
fabs则代表取绝对值,要调用#include <math.h>
#include <stdio.h>
#include <math.h>
int main(){
unsigned int a=-3;
int b=abs(-9); //abs()针对于int等整型取绝对值
float c=fabs(-9.5); //fabs()针对于float等浮点型 取绝对值
printf("%u %d %d %f",a,a,b,c); //对于unsigned类型的输出用%u 转换成较大的正数 %d则输出原来数
return 0;
}
三、二维数组注意点
a[][6]={}; //一维长度可以不必表明,但二维长度一定要写
在定义函数方面,二维数组做参数也符合上述要求
#define x 10
#define y 20
void SUM(int a[][6] ,int b[])
{
...............
}
int main(){
m=SUM(int a[x][6],int b[y]);
.........
}
四.C#
1.关于数组
可以通过以下方法操作数组:①Length 属性:获取数组的长度②Rank 属性:获取数组的维数③GetValue 方法:获取指定位置的元素值④SetValue 方法:设置指定位置的元素值⑤CopyTo 方法:将数组的元素复制到另一个数组中 方法:对数组进行是些使用例子:
int[] array = {1, 2, 3, 4, 5};
Console.WriteLine(array.Length); // 输出 5
int[,] array2d = { {1, 2}, {3, 4}, {5, 6} };
Console.WriteLine(array2d.Rank); // 输出 2
Console.WriteLine(array.GetValue(1)); // 输出 2
string[] target = new string[3];
array3.CopyTo(target, 0);
Console.WriteLine(target[1]); // 输出 null
Array.Sort(array); //sort排序
Console.WriteLine(array[0]); // 输出 1
关于copyto注意点
array.CopyTo(target,x) 表明把array数组的内容复制给target数组,x表示从第几位开始复制如果target数组长度小于array则显示报错。所以target数组长度要大于array
2.关于枚举
枚举类型使用enum关键字来声明。枚举类型定义包含一个或多个枚举成员,每个枚举成员都有一个唯一的名称和一个关联的值。 以下是一个示例,声明一个表示星期的枚举类型:
enum Weekday
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
在这个示例中,Weekday是枚举类型的名称,每个成员都是一个星期名称,如Monday和Tuesday。如果没有为枚举成员指定值,则默认值从O开始,每个成员的值依次递增。
枚举的使用:
枚举类型的使用方式和其他数据类型类似,可以定义枚举类型的变量并将其赋值给枚举成员之一。以下是一个示例:
Weekday today = Weekday.Wednesday;
Console.WriteLine("Today is " + today);
在这个示例中,将 Weekday 类型的变量 today 赋值为 Wednesday 枚举成员,并将其输出到控制台。
还可以使用枚举成员的值来进行比较或执行其他操作。例如:
if (today == Weekday.Saturday || today == Weekday.Sunday)
{
Console.WriteLine("It's the weekend!");
}
在这个示例中,使用 if 语句检查今天是否为周末(Saturday 或 Sunday 枚举成员)。
枚举的类型转换:
枚举类型可以与其他整数类型进行隐式或显式转换。例如,可以将枚举类型转换为整数类型,反之亦然。以下是一个示例:
int fridayValue = (int)Weekday.Friday;
Console.WriteLine("Friday's value is " + fridayValue);
在这个示例中,将 Friday 枚举成员的值转换为整数类型,并将其输出到控制台。
枚举的作用:
枚举类型使得程序的代码更加可读和易于维护,因为它允许使用有意义的名称来表示常量。此外,枚举类型还允许定义一组相关的常量,并使用它们来表示状态、选项等。 以下是一个示例,使用枚举类型来表示三种不同的状态:
enum Status
{
Ready,
Running,
Stopped
}
class Program
{
static void Main(string[] args)
{
Status currentStatus = Status.Ready;
if (currentStatus == Status.Ready)
{
Console.WriteLine("The program is ready.");
}
else if (currentStatus == Status.Running)
{
Console.WriteLine("The program is running.");
}
else if (currentStatus == Status.Stopped)
{
Console.WriteLine("The program is stopped.");
}
}
}
在这个示例中,使用枚举类型来表示三种不同的状态,并在程序中使用 if 语句根据当前状态输出不同的信息。