while(*(str + k)!='\0');
时间: 2024-05-17 07:14:27 浏览: 12
这是一个经典的字符串操作语句,作用是找到字符串 str 的末尾位置。其中,str 是一个指向字符串首地址的指针变量,k 是一个整型变量,用于遍历字符串。具体解释如下:
1. *(str + k) 表示取出指针 str 加上偏移量 k 后指向的内存地址上的值,也就是字符串中第 k 个字符的值。
2. '\0' 是字符串的结束符,它的 ASCII 码为 0。字符串在内存中是连续存储的,以 '\0' 结尾是为了告诉程序字符串的长度。
3. while 循环的条件是当第 k 个字符不为 '\0' 时,继续循环。当遍历到字符串末尾(即遇到 '\0')时,循环结束。这样,k 的值就是字符串的长度。
需要注意的是,这个语句可能存在死循环的风险。如果字符串没有以 '\0' 结尾,那么循环会一直执行下去,直到程序崩溃。因此,在编写字符串处理函数时,一定要保证字符串以 '\0' 结尾。
相关问题
#include <stdio.h> #include <string.h> void strrev(char *p,char *q) { while(p<q) { int t=*p;*p=*q;*q=t; p++;q--; } } int main(int argc, const char *argv[]) { char str[]="good good study"; char *p=str; char *q=str+strlen(str)-1; strrev(p,q); p=q=str; while(*p!='\0') { while(*q!=' '&&*q!='\0') { q++; } char *k=q-1; strrev(p,k); while(*q==' ') q++; q=p; } puts(str); return 0; }
这段代码是用来颠倒字符串中每个单词的序的。它首先定义了一个函数`strrev`,用于颠倒字符串中给定区间的字符顺序然后在`main`函数中,它将字符串"good good study"储在字符数组`str`中。接着它使用指针`p`和`q`分别指向字符串的开头和结尾。
然后,它调用`strrev函数来颠倒整个字符串。接下来,它使用两个指针`p`和`q`来遍历字符串,找到每个单词的起始和结束位置,并调用`strrev`函数来颠倒每个单词的字符顺序。最后,它打印出颠倒后的字符串。
这段代码的输出结果应该是"doog doog yduts",也就是将原字符串中每个单词的顺序颠倒了。
void Usart_SendString( USART_TypeDef * pUSARTx, char *str) { unsigned int k=0; do { Usart_SendByte( pUSARTx, *(str + k) ); k++; } while(*(str + k)!='\0'); /* 等待发送完成 */ while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)==RESET) {} }
这是一个用于发送字符串的函数,它需要两个参数:USART_TypeDef类型的指针pUSARTx和一个字符指针str,其中pUSARTx表示要使用的USART外设,str表示要发送的字符串。
该函数利用了Usart_SendByte函数发送每个字符,并且通过判断字符是否为'\0'来判断字符串是否发送完成。
最后,该函数使用USART_GetFlagStatus函数来等待USART发送完成,以确保字符串已经成功发送。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)