判断字符串中是否存在空格符

之前做了一个小练习:定义一个函数,接收字符串,判断其中的元素是否有空格字符,返回判断结果。结合《head first python》第157页bool函数值的内容,整理如下:

数据结构为空和数值为空格符,是不一样的。

①判断一个字符串、列表、字典是否为空,可用bool(self)函数,空则返回0,非空返回1。bool函数可判断内置数据结构是否为空。

② 判断一个字符串是否为空格,可用str.isspace()

③判断一个字符串是否含有空格,之前自己做题时,用的是for循环,遍历一个字符串,判断每个字符是否等于' '(一个空格字符)。其实可用  in方法,即  ' ' in str来判断,更简洁。

假设字符串string存储在寄存器ebx,可以使用汇编语言的循环结构和条件判断语句来实现该功能。 首先,可以使用lodsb指令将ebx寄存器指向的字符串的字符读入到al寄存器。然后,可以使用cmp指令将al寄存器的字符与'&'字符进行比较。如果相等,就将al寄存器的字符替换为空格符,并将其存储到string。否则,直接将al寄存器的字符存储到string。 下面是一段示例代码: ``` mov esi, ebx ; 将ebx寄存器的值存储到esi寄存器,作为字符串的起始地址 mov ecx, 0 ; 初始化ecx寄存器,作为循环计数器 loop_start: lodsb ; 从esi指向的字符串读取一个字符到al寄存器 cmp al, '&' ; 将al寄存器的字符与'&'字符进行比较 je replace ; 如果相等,跳转到replace标签 mov [esi-1], al ; 将al寄存器的字符存储到字符串 inc ecx ; 增加计数器的值 cmp byte ptr [esi-1], 0 ; 判断是否已经读取完整个字符串 jne loop_start ; 如果没有,继续循环 jmp loop_end ; 如果已经读取完整个字符串,跳转到loop_end标签 replace: mov byte ptr [esi-1], ' ' ; 将'&'字符替换为空格符 inc ecx ; 增加计数器的值 cmp byte ptr [esi-1], 0 ; 判断是否已经读取完整个字符串 jne loop_start ; 如果没有,继续循环 loop_end: ; 在这里可以进行下一步操作 ``` 需要注意的是,这段代码假设字符串没有空格符,因为如果有空格符,就无法区分哪些空格符是原本就存在的,哪些是替换后加入的。如果一定要替换空格符,可以考虑使用其他字符来代替空格符,然后在输出时再将该字符替换回空格符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值