我目前正致力于计算机体系结构课程的介绍任务,并且我被要求完成一些字符串修改。我的问题不是如何做到,但我应该研究什么才能做到这一点?是否有任何函数可以使这更容易,例如.reverse()是java。
我需要完成的是从用户那里获取字符串输入,反转字母(反转数字使它们保持原样),每当有元音时添加空格,并交替显示大写字母。
示例:
Input: AbC_DeF12
Output: f E d _ c B a 2 1
这是我从讲座中摘录的代码:http://pastebin.com/2E1UtGdD我把它放在pastebin中以避免混乱。在这里使用的任何东西都是公平的游戏。 (这段代码确实有限制,它只支持~9个字符,并且循环在字符串末尾不起作用)
答案 0 :(得分:1)
我会这样看。
在纸上生成一个关于如何实现这一目标的功能。这是笔记,只是一个起点。
Loop from 0 to string length.
if(byte >= 'A' || byte <= 'Z') then byte -= 'A' - 'a'; /* convert to lower case */
if(byte >= 'a' || byte <= 'z') then byte += 'A' - 'a'; /* convert to upper case */
/* Switch the letters only. */
a = 0; b = string length
Loop i from a to b. if((input >= 'A' && input <='Z') || (input >= 'a' && input <='z')) p = i
Loop j from b to a. if((input >= 'A' && input <='Z') || (input >= 'a' && input <='z')) q = j
c = input[i]; input[i] = input[j]; input[j] = c;
/* Regenerate the string and add spaces. */
loop i, 0 to string length
if(input[i] == 'A' 'a' 'E' 'e' ...) string2[j] = ' '; j++; string2[j] = input[i]; j++;
i++
之后如果你不了解8086,我会在网上看一下如何做每个部分的例子。最重要的一点是在脑海中生成代码,并在纸上生成代码。