输入一个字符保存在s1中,将s1中的字符逐个复制到数组s2中并输出。
如有帮助给个采纳加关注,下个问题不迷路 谢谢
#include <iostream>
using namespace std;
int main() {
char s1[100], s2[100];
int i = 0;
cout << "请输入一个字符串:";
cin >> s1;
while (s1[i] != '\0') {
s2[i] = s1[i];
cout << s2[i];
i++;
}
return 0;
}
利用strcpy来将字符串保存到字符数组中
不知道你这个问题是否已经解决, 如果还没有解决的话:题目内容:
输入2 个字符串S1 和S2,要求删除字符串S1 中出现的所有子串S2,即结果字符串中不能包含S2。
提示:输入数据的设计使得不可能出现输出为空的情况。
输入格式:
输入分别给出2 个每个不超过80 个字符长度的不带空格的非空字符串,对应S1 和S2。
输出格式:
在一行中输出删除字符串S1 中出现的所有子串S2 后的结果字符串。
输入样例:
Thisisatest is
输出样例:
Thatest
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * returnStr(char * s1, const char * s2);
char * returnStr(char * s1, const char * s2)
{
char * str = 0 ;
char * p = 0;
char * p_temp = 0;
while ((p = strstr(s1, s2)) != NULL) {
p_temp = p;
*p = '\0';
str = (char *)malloc(sizeof(s1)+1);
strcpy(str, s1);
strcat(str, p + strlen(s2));
s1 = str;
}
*p_temp = s2[0];
free(str);
str = NULL;
return s1;
}
int main()
{
char * s1 = 0 ;
char * s2 = 0 ;
char * temp = 0;
printf("please input double string : ");
s1 = (char *)malloc(81);
s2 = (char *)malloc(81);
scanf("%s %s", s1, s2);
temp = s1;
//printf("%s %s", s1 ,s2);
s1 = returnStr(s1, s2);
printf("%s\n",s1);
s1 = temp;
free(s1);
free(s2);
s1 = NULL;
s2 = NULL;
return 0;
}
首先,需要使用input()函数从用户那里获取单个字符,代码如下:
s1 = input("请输入一个单一字符: ")
接下来,需要将s1中的字符复制到s2中,可以使用字符串切片的方式完成,具体代码如下:
s2 = s1[:] # 复制s1中的字符到s2
最后,需要逐个输出s2中的字符,可以使用for循环遍历s2字符串,并利用print函数输出,代码如下:
for ch in s2:
print(ch, end=' ')
完整代码如下:
s1 = input("请输入一个单一字符: ")
s2 = s1[:] # 复制s1中的字符到s2
for ch in s2:
print(ch, end=' ')
输出结果例如:
请输入一个单一字符: a
a