方法 1:(引进变量)
可以认为a、b、c各占一个小格,小格里可以放入数字。具体步骤为:
程序如下:
#include <stdio.h>
int main()
{
int a,b,c
scanf("%d %d",&a,&b)
c=a;
a=b
b=c
printf("a=%d b=%d\n",a,b)
return 0
}
方法 2:()
两个数的互换可以用式子:
a=b-ab=b-aa=b+a来实现。
程序如下:
#include<stdio.h>
int main()
{
int a,b
scanf("%d %d",a,b)
a = a + b
b = a - b
a = a - b
printf("a=%d,b=%d", a, b)
return 0
}
方法 3:(指针)
程序如下:
#include<stdio.h>
int fun(int *p, int *q)
{
int tmp = *p
*p = *q
*q = tmp
}
int main()
{
int a,b
scanf("%d %d",&a,&b)
printf("%d,%d\n", a, b)
fun(&a, &b)
printf("%d,%d\n", a, b)
return 0
}
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。用itoa()函数将整数转换为字符串。
itoa()函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数。在上例中,转换基数为10。
#include <stdio.h>
int main()
{
int a[4]={1,2,3,4}
char b[4]
for(int i=0i<4i++)
b[i]=a[i]
for(int i=0i<4i++)
printf("%c",b[i])
return 0
}
字符串在存储上类似字符数组
它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。
两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
以上内容参考:百度百科-字符串
//..codechar A = '9'
int B = (int)(A)
printf("%d\n",B)
------>输出结果:9
//..code
char A = "59"
int B = atoi(A)
printf("%d\n",B)
------->输出结果:59
//..code
//传入字符串buf
char buf = "{15,124,0,0,9,24,100,224,106,72,1,33,33,33,17,14,26,46,10,235,2,57,82,99,240,178,227,32,50,48,57,0,247,166,5,34,45,105,248,218,33,127,163,228,241,20,0,65,4,162,115,125,64}"
uint8_t buffer[1024] = {0}//接收用缓存uint8_t数组
char temp[10] = "0"//用来存储字符串中的某一个数据,既atoi的对象
//开始对字符串进行处理
for(int i = 0i <sizeof(buffer)i++)
{
if(buf[i] == '{')//此判断不允许一个数值里存在多余空格,如105不能写成1 05
{
k = 0
n = 0
j = 0
memset(temp, 0x00, sizeof(temp))
memset(buffer, 0x00, sizeof(buffer))//..置0
continue
}
else if(buf[i] != ',' &&buf[i] != '}')
{
n += 1
temp[j] = buf[i]
j += 1
continue
}
else if(buf[i] == ',' || buf[i] == '}')
{
n = 0
j = 0
uint8_t serv = atoi(temp)//..字符转int
memset(temp, 0x00, sizeof(temp))
buffer[k] = serv
k += 1
continue
}
}
//for循环输出buffer。
1.本例中数组值只能是0-255,因为定义的接收数组的类型为uint8_t,如果需要更大数值,请修改buffer的类型。
2.由于定义buffer时大小为1024个0,输出buffer时前面为需要的数据,后面为0的1024个数据。