2020-11-13整数转换为字符串 字符反转

在使用WIFI 中需要把一些信息发送到手机 端查看 ,这是有个APP 上看得,字符好处理,而数字就必须转换为字符才可以发送看,原来是直接 +‘0’ 或 - ‘0’ 这样转换为字符来 后来我就想使用库函数看看效果
可在单片机上使用库函数 是由 报错的
就从网上找了一下 ,下面这个确实可以使用
我想说的是 这个很有意思
特别是 字符反转很有技巧
首先2个指针都 指向一个字符串
1指向字符串首字母
2指向字符串尾字母
这个通过
while(*q)
++q; 来实现
当p 不等于 0 的时候
++q
q 是一致向字符 或向字符串后面
比如
q[10] = {ABCDEFG};
q 最后是指向 G后面的那个 ‘\0’ 也就是最后的回车 符号
接下来是

–q指向字符串最后一个字符
这样 q – 就是从后面到前面的顺序通过
while(q>p)
//也就是 q 的指向大于p
就运行下面的交换字符
而这个最大的好处是对 s 来修改的
为什么因为 pq都是指针指向 字符串 s 的
所以是直接对字符串s 来进行修改的
通过
{ temp = *p;
//temp = p[0]
*p++ = *q; //q–ºóÖ¸Ïò µÄ ¸ø *p
// *p++ = p[0] = *q
//p [1]
*q-- = temp; //temp ¸ø *p –
//

}

**重点就是通过指针对一个字符串修改
**

#include <stdio.h>
#include <stdlib.h>
#include <string.h> //

char *Reverse(char *s)
{
char temp;
char *p = s; //×Ö·û´®Ê××Öĸ
char *q = s; //×Ö·û´®Î²×Öĸ
while(*q) //µÈ´ý q =0
++q;
// printf(“1111111111111%s\r\n”,q); //
q–; //
//printf("%s\r\n",q);
//printf(“2222222%s\r\n”,s);
while(q>p) //
{ temp = *p; //p[0] ¸ø temp
//printf("-----------%s\r\n",p);
*p++ = *q; //q–ºóÖ¸Ïò µÄ ¸ø *p
//printf("-----------%s\r\n",q);
*q-- = temp; //temp ¸ø *p –
//printf("-----------%s\r\n",temp);
}
//printf("-----------%s\r\n",q);
//printf("-----------%s\r\n",p);
//printf("-----------%s\r\n",s);
return s;

}

char *My_Itoa(int n)
{
int i=0,isNegative = 0;
static char s[10];
if((isNegative=n)<0) //Èç¹ûN <0
{ n = -n;} //n = -n;
do{
s[i++] = n%10+‘0’; //s[i++] = 123%10 + ‘0’
n = n/10;
}while(n>0);
if(isNegative<0)
{
s[i++] = ‘-’;
}
s[i] = ‘\0’;
//printf("+++++%s\r\n",s);
return Reverse(s);
//return s;
}

int main()
{
int num =343;
int k = 2442;
int mmm ;
int aaa = 7654;
char str[22];
char s[10];
char sss[30]=“633”;

char *u = My_Itoa(aaa);

itoa(num,str,10); //°ÑÕûÊýת»»Îª×Ö·û´® 
itoa(k,s,10);
strcat(str,s); //½«Á½¸öת»»ºóµÄ×Ö·û´®Á¬½ÓÆðÀ´ 

mmm = atoi(sss);  //½«×Ö·û´®×ª»»ÎªÕûÊý

printf("****%s\r\n",u);

printf("int_char %s\r\n",str);

printf("char_int %d\r\n",mmm);

getchar();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值