用c语言编写自定义函数void tailAppend(char s1[],char s2[]),,其功能是将字符串s2接到字符串s1之后(不调用strcpy或strcat函数)
时间: 2024-02-03 16:14:58 浏览: 86
下面是一个用C语言编写的自定义函数`void tailAppend(char s1[], char s2[])`,可以将字符串s2接到字符串s1之后:
```c
#include <stdio.h>
void tailAppend(char s1[], char s2[]) {
int i, j;
for (i = 0; s1[i] != '\0'; i++) {} // 找到s1的结尾
for (j = 0; s2[j] != '\0'; j++) {
s1[i + j] = s2[j]; // 将s2中的字符一个个拷贝到s1的结尾后
}
s1[i + j] = '\0'; // 注意字符串结尾符号
}
int main() {
char s1[100] = "hello, ";
char s2[] = "world!";
tailAppend(s1, s2);
printf("%s\n", s1); // 输出 "hello, world!"
return 0;
}
```
这个函数的实现方法很简单,就是先找到s1的结尾,然后从s2的开头一个个拷贝字符到s1的结尾后,并在最后加上字符串结尾符'\0'。需要注意的是,s1数组必须要有足够的空间来存放新的字符串,否则可能会导致内存溢出等问题。
相关问题
用c语言编写定义一个函数void fun(),函数的形参为字符数组S1和S2,函数功能是将字符串S1中的所有数字字符取出,存入另一字符数组S2中,使S2成为一个新的字符串,并在函数中将字符串S2输出
好的,以下是用 C 语言编写的函数 void fun() 的代码:
```c
#include <stdio.h>
#include <string.h>
void fun(char S1[], char S2[]) {
int i, j = 0;
for (i = 0; i < strlen(S1); i++) {
if (S1[i] >= '0' && S1[i] <= '9') { // 判断是否为数字字符
S2[j] = S1[i]; // 将数字字符存入 S2 中
j++;
}
}
S2[j] = '\0'; // 在 S2 末尾加上字符串结束标志
printf("%s\n", S2); // 输出 S2
}
```
这个函数的作用是将字符串 S1 中的所有数字字符取出,存入另一个字符数组 S2 中,并在函数中将字符串 S2 输出。我们可以在主函数中调用这个函数,例如:
```c
int main() {
char S1[] = "a1b2c3d4e5";
char S2[6];
fun(S1, S2); // 调用函数 fun
return 0;
}
```
这个例子中,S1 中包含了数字字符 "1"、"2"、"3"、"4"、"5",我们调用函数 fun 将这些数字字符取出并存入 S2 中,最后输出 S2,输出结果为 "12345"。
用c语言编写自定义函数完成两个字符串的连接功能,要求自定义函数形参采用指针。
可以使用以下代码实现:
```c
#include <stdio.h>
#include <string.h>
void mystrcat(char *s1, char *s2) {
while (*s1 != '\0') {
s1++;
}
while (*s2 != '\0') {
*s1 = *s2;
s1++;
s2++;
}
*s1 = '\0';
}
int main() {
char s1[100] = "Hello";
char s2[] = "World";
mystrcat(s1, s2);
printf("%s\n", s1);
return 0;
}
```
在上面的代码中,`mystrcat` 函数接受两个指向字符数组的指针 `s1` 和 `s2`,并将 `s2` 中的字符连接到 `s1` 的末尾。函数的实现相当简单,只需使用指针逐个字符地复制 `s2` 中的字符到 `s1` 中,直到 `s2` 的末尾,并在 `s1` 的末尾添加一个空字符来终止字符串。
阅读全文