week2

本文介绍了C语言中字符串与数字之间的转换函数,如atof、atoi和_itoa,以及浮点数转换和sprintf函数的使用。同时讲解了无符号数的处理和fabs函数用于计算绝对值。在C#部分,提到了数组的操作,包括Length属性、Rank属性、GetValue和SetValue方法,以及枚举的声明、使用、类型转换和作用。
摘要由CSDN通过智能技术生成

一、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 语句根据当前状态输出不同的信息。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值