用指针作为函数的形式参数,编写字符串复制函数。 **输入格式要求:"%s" 提示信息:"Enter String:" **输出格式要求:"a=%s\nb=%s\n" 程序运行示例如下: Enter String:happy a=happy b=happy
时间: 2024-02-15 07:03:00 浏览: 46
以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void copy_string(char *a, char *b);
int main()
{
char a[100], b[100];
printf("Enter String:");
scanf("%s", a);
copy_string(a, b);
printf("a=%s\nb=%s\n", a, b);
return 0;
}
void copy_string(char *a, char *b)
{
while (*a != '\0')
{
*b = *a;
a++;
b++;
}
*b = '\0';
}
```
函数 `copy_string` 接受两个指针参数 `a` 和 `b`,分别指向需要复制的字符串和目标字符串。函数使用 while 循环逐个字符复制,直到遇到字符串结束符号 `\0`,然后在目标字符串结尾处添加结束符号。
在 `main` 函数中,先输入需要复制的字符串 `a`,然后调用 `copy_string` 函数,将其复制到 `b` 中。最后输出 `a` 和 `b` 的值。
相关问题
编写函数,通过指针求字符串的长度。 **输入格式要求:"%s" 提示信息:"Enter string:" **输出格式要求:"string length=%d\n" 程序运行示例如下: Enter string:nihao string length=5
下面是一个实现的示例代码:
```c
#include <stdio.h>
// 函数原型
int strLength(char *str);
int main()
{
char str[100];
printf("Enter string:");
scanf("%s", str);
int len = strLength(str);
printf("string length=%d\n", len);
return 0;
}
int strLength(char *str)
{
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
```
该函数的实现非常简单,使用一个 while 循环来遍历字符串,每遍历一个字符,就将长度加一,直到遍历到字符串的结尾(即遇到 '\0')。需要注意的是,这里使用了指针来遍历字符串,因为字符串本身就是一个字符数组,可以直接用指针来访问。
编写函数,通过指针连接两个字符串。 **输入格式要求:"%s" 提示信息:"Enter string 1:" "Enter string 2:" **输出格式要求:"a+b=%s\n"
下面是这个函数的代码实现:
```c
#include <stdio.h>
#include <string.h>
void combineString(char *str1, char *str2, char *result) {
int i = 0, j = 0;
while (str1[i] != '\0') {
result[i] = str1[i];
i++;
}
while (str2[j] != '\0') {
result[i + j] = str2[j];
j++;
}
result[i + j] = '\0';
}
int main() {
char str1[100], str2[100], result[200];
printf("Enter string 1:");
scanf("%s", str1);
printf("Enter string 2:");
scanf("%s", str2);
combineString(str1, str2, result);
printf("a+b=%s\n", result);
return 0;
}
```
该程序定义了一个 `combineString` 函数,它接受三个参数:两个字符串指针和一个结果字符串指针。函数通过指针连接两个字符串并将结果存储在结果字符串中。
在 `main` 函数中,程序提示用户输入两个字符串,然后调用 `combineString` 函数来连接这两个字符串,并将结果打印出来。