C语言基础知识2 字符串的一些操作
代码示例
#include <stdio.h> #include <stdlib.h> int main() { int len,i; char *tst="ABCDEFGHIJK"; //字符串的指针,指向第一个 len=strlen(tst); for(i=0;i<len;i++) { printf("%c\n",*tst); tst++; } printf(" \'G\' is %d\n",'G'); //单引号和双引号有区别,比较奇怪。 printf(" \"G\" is %d\n","G"); }
以上是C语言的基本操作。
下面的代码,实现单片机的串口发送一段字符串。
int8_t * AT_CGATT_Q = "AT+CGATT?\r\n"; void USART2_Write(USART_TypeDef* USARTx, uint8_t *Data, uint32_t len) { uint32_t i; USART_ClearFlag(USARTx, USART_FLAG_TC); for(i = 0; i < len; i++) { USART_SendData(USARTx, *Data++); while( USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET ); } } //在这里,就是把AT_CGATT_Q这个指针,作为Data这个参数传入
#include <stdio.h> #include <stdlib.h> int main() { char a[10]="abc!"; //数据的方式 int i; for(i=0;a[i]!='\0';i++) { printf("%c\n",a[i]); if(a[i]==98) //字符-->ASCII码-->十六进制 printf("yes\n"); } char *p="mnopgrs!"; //指针 char *q="xyz"; for(i=0;*(p+i)!='\0';i++) printf("%c\n",*(p+i)); int b,c,d; b=strlen(p); c=strlen(q); printf("lenth of string p is %d\n",b); //b输出8 printf("lenth of string q is %d\n",c); //b输出8 p=strcat(p,q); //空间的问题 这个函数的运行,是会出错的 b=strlen(p); printf("string p is %d\n",b); //b输出8 }