C51 strstr
时间: 2023-11-16 07:56:18 浏览: 264
C51 strstr是keil c51的库函数之一,用于在一个字符串中查找另一个字符串的出现位置。它的函数声明为char* strstr(const char* str1, const char* str2),其中str1是要查找的字符串,str2是要查找的子串。如果找到了子串,则返回子串在字符串中的起始地址;如果没有找到,则返回NULL。C51 strstr函数的实现方式可能是用C语言或汇编语言编写的。
相关问题
设一英文段落(其内容自行设置)存放在外部RAM中,该段落以回车(0DH)结 束。试编制程序统计该段落中单词“is”的个数(假设个数<99),并将其存入内 部RAM 30H单元中,以压缩的BCD码形式存放。程序运行结束后利用观察窗口检 查运行结果。c51
首先,让我们构建一个C51程序来完成这个任务。我们将使用外部数据存储器来读取英文段落,并遍历它来计算单词 "is" 的出现次数。最后,我们将结果转换成压缩的BCD码并存储到内部RAM的30H地址。
```c
#include <reg52.h>
#include <intrins.h>
void main(void)
{
char* extRam = (char*)0x2000; // 外部RAM的起始地址
int wordCount = 0;
unsigned short bcdResult;
for(int i = 0; ; i++) // 循环直到遇到结束符或超过98次
{
if(extRam[i] == '\0') // 到达字符串结束
break;
if(strstr("is", extRam + i)) // 检查当前位置是否有 "is"
wordCount++;
// 如果计数达到99,停止并转换为BCD码
if(wordCount >= 99)
break;
}
// 转换为BCD码
bcdResult = wordCount / 10; // 十位
bcdResult |= (wordCount % 10) << 4; // 个位
// 将BCD码写入内存
MOV A, #30H // 目标地址
MOVW @A+DPTR, #bcdResult
// 结束后你可以通过观察窗口检查30H单元的内容
__中断(); // 防止程序继续执行,这里需要实际的中断处理
}
阅读全文
相关推荐









