Online Compiler C

#include <stdio.h> void my_strcat(char dst[], char src[]){ int m=0,n=0; while(src[m]!='\n'&&src[m]!='\0'){ if(src[m]>='a'&&src[m]<='z'){ dst[n]=src[m]; n++; } m++; } dst[n]='\0'; //int t=0; //while(dst[t]!='\0'){ // printf("%c",dst[t]); // t++; // } } int main() { char n[1000]={"abc.def."},answer[1000]; my_strcat(answer,n); return 0; }
这段代码定义了一个 `my_strcat` 函数,但它的行为并不是标准的字符串拼接。它从源字符串 `src` 中只复制小写字母到目标字符串 `dst`,并忽略其他字符(包括大写字母、标点等)。在 `main` 中,它把 `"abc.def."` 中的小写字母复制到 `answer`,所以 `answer` 最终会是 `"abcdef"`。

- 注意函数名 `my_strcat` 暗示拼接,但实际功能是过滤小写字母。如果这是作业要求实现拼接,你需要重新考虑逻辑:拼接应该将 `src` 整个追加到 `dst` 的末尾,而不是覆盖或过滤。
- 在 `main` 中,`answer` 数组未初始化,且 `my_strcat` 没有考虑 `dst` 中原有的内容(比如 `n` 数组有内容,但 `answer` 是空的)。如果要做拼接,你需要先找到 `dst` 的结尾位置再开始追加。