【发布时间】:2021-10-18 20:21:53
【问题描述】:
这是我目前正在使用的汇编代码,但我只获得了我尝试更改代码但无法得到正确答案的初始字符串:
.global stringCat
.text
stringCat:
stringCat_loop:
LDRB R2, [R1], #1
STRB R2, [R0], #1
CMP R2, #0
BNE stringCat_loop
BX LR
这是调用函数的 C 代码:
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <stdbool.h>
extern void stringCat(char* strFrom, char* strTo);
int main(void) {
char test3[20] = "ijkl";
char test4[44] = "mnop"
stringCat(test3, test4);
printf("Question 2, stringCat: Correct answer = mnopijkl\n");
printf("Question 2, stringCat: student answer = %s\n\n", test4);
return EXIT_SUCCESS;
}
【问题讨论】:
-
你需要在第一个字符串的末尾找到空字节,然后开始复制到那里。
-
你实现了
strcpy(),而不是strcat()。 -
看起来应该是
stringCat(char* strTo, char* strFrom);,而不是stringCat(char* strFrom, char* strTo);(在您在strTo中找到\0之后)