按题目要求编写完整功能代码,参考答案点击按钮展开
编写函数 fun,将字符串 s2 逆序后连接到 s1 末尾。例如 s1="abc", s2="123",则 s1 变为 "abc321"。
#include <stdio.h>
#include <string.h>
/* 函数功能:将字符串 s2 逆序后连接到 s1 末尾。
请在下方编写 fun 函数体。 */
void fun(char s1[], char s2[])
{
/* 请在这里编写代码 */
}
int main()
{
char s1[100] = "abc";
char s2[] = "123";
fun(s1, s2);
printf("结果: %s\n", s1);
return 0;
}
void fun(char s1[], char s2[])
{
int i, j, len2;
len2 = strlen(s2);
/* i 指向 s1 末尾 '\0' 位置 */
for(i=0; s1[i]!='\0'; i++);
/* j 从 s2 最后一个字符开始倒序连接 */
for(j=len2-1; j>=0; j--)
{
s1[i] = s2[j];
i++;
}
s1[i] = '\0';
}
考点:指针/下标操作 + 字符串连接。第一步找到 s1 末尾 '\0' 的位置 i(循环到 s[i]='\0' 为止,不 ++)。第二步 j 从 s2 末尾(len2-1)倒序遍历到 0,逐字符 s1[i++]=s2[j]。最后必须 s1[i]='\0' 收尾。注意 strlen 不含 '\0',所以最后一个字符下标是 len2-1。