用c语言键盘输入的两个字符串进行连接(不得调用任何字符串处理函数,包括strlen)。
时间: 2024-03-09 11:47:42 浏览: 91
可以使用指针来实现字符串连接,具体步骤如下:
1. 定义两个指针,分别指向两个字符串的起始位置。
2. 分别使用while循环找到两个字符串的末尾位置,即'\0'的位置。
3. 将第二个字符串的内容复制到第一个字符串的末尾位置,需要注意的是,复制的过程中,需要使用指针来操作。
4. 最后,将第一个字符串的起始位置返回即可。
代码示例:
```c
#include <stdio.h>
char* str_concat(char* s1, char* s2) {
char* p = s1;
while (*p) { // 找到第一个字符串的末尾位置
p++;
}
while (*s2) { // 复制第二个字符串的内容到第一个字符串末尾
*p++ = *s2++;
}
*p = '\0'; // 在第一个字符串末尾添加 '\0'
return s1;
}
int main() {
char s1[100], s2[100];
printf("请输入第一个字符串:");
scanf("%s", s1);
printf("请输入第二个字符串:");
scanf("%s", s2);
printf("两个字符串连接后的结果为:%s\n", str_concat(s1, s2));
return 0;
}
```
相关问题
实现一个用C语言中利用指针将字符串连接函数mystrcat。 题目中已经给出main函数,main函数会调用mystrcat函数进行测试,会输入两个字符串A和Bmystrcat返回连接后的字符串,并且在A和B之间加上一个字符“-”。
好的,下面是mystrcat函数的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* mystrcat(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
char* result = (char*)malloc(len1 + len2 + 2); // 长度加2,加上连接符'-'和'\0'
if(result == NULL) {
printf("内存分配失败!");
return NULL;
}
char* p = result;
while(*str1 != '\0') {
*p++ = *str1++;
}
*p++ = '-';
while(*str2 != '\0') {
*p++ = *str2++;
}
*p = '\0';
return result;
}
int main() {
char str1[100], str2[100];
printf("请输入字符串A:");
gets(str1);
printf("请输入字符串B:");
gets(str2);
char* result = mystrcat(str1, str2);
printf("连接后的字符串为:%s\n", result);
free(result);
return 0;
}
```
在函数内部,首先需要计算出两个字符串的长度,然后分配一块新的内存来存储连接后的字符串,长度为两个字符串长度之和再加2(因为需要加上连接符'-'和字符串结束符'\0')。
接着,使用指针p指向新分配的内存,然后将字符串A中的字符一个一个复制到p所指向的位置,复制完成后,再将连接符'-'复制到p所指向的位置,最后将字符串B中的字符一个一个复制到p所指向的位置。这样,就完成了字符串的连接。
最后,需要注意,在使用完新分配的内存后,需要调用free函数将其释放。
c语言 从键盘输入一个字符串与一个指定字符,调用函数,将字符串中出现的指定字符全部删除。
可以使用C语言中的字符串操作函数来实现该功能,具体步骤如下:
1. 从键盘读入一个字符串和一个指定字符,可以使用scanf函数实现。
2. 遍历字符串中的每一个字符,如果该字符不是指定字符,则将它添加到一个新的字符串中。
3. 最后输出新的字符串即可。
下面是示例代码:
```c
#include <stdio.h>
#include <string.h>
void delete_char(char *str, char ch) {
int len = strlen(str);
int j = 0;
for (int i = 0; i < len; i++) {
if (str[i] != ch) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100], ch;
printf("请输入一个字符串:");
scanf("%s", str);
printf("请输入指定字符:");
scanf(" %c", &ch);
delete_char(str, ch);
printf("删除后的字符串为:%s\n", str);
return 0;
}
```
在上面的代码中,我们定义了一个`delete_char`函数来实现删除指定字符的功能。在该函数中,我们使用了两个指针`i`和`j`来遍历原字符串和新字符串。如果原字符串中的字符不是指定字符,就将它添加到新字符串中。最后,将新字符串末尾的字符设置为`\0`,即可得到删除指定字符后的字符串。
阅读全文