c++ 用数组方法做输入串长小于20的任意字符串和指定字符,删除其中指定字符?

c++ 用数组方法做输入串长小于20的任意字符串和指定字符,删除其中指定字符?(不用指针能做吗)

#include <stdio.h>
int main() {
char ch,s[81],*p,*q;
int i;
p = s;
printf("请输入字符串 : ");
gets(s);
printf("请输入要删除的字符 : ");
fflush(stdin);
scanf("%c",&ch);
while(*p) {
if(*p == ch) {
q = p;
while(*q = *(q + 1)) ++q;
--p;
}
++p;
}
printf("%s\n",s);
return 0;
}

 

#include <stdio.h>
#include <string>
int main(){
   
    char arrs[20];
    scanf("%s",&arrs);
    scanf("%c",&k);
    for(int i=k;i<strlen(arrs);i++)
    {
        char temp = arrs[i];
        arrs[i]= arrs[i+1];
        arrs[i+1]= temp;
    }
}

删的是数组的第4个位置

#include <stdio.h>
#include <string>
#pragma warning(disable:4996)
int main() {
    int k = 0;
    char arrs[20];
    scanf("%s", &arrs);
    
    scanf("%d", &k);
    for (int i = k; i < strlen(arrs); i++)
    {
        char temp = arrs[i];
        arrs[i] = arrs[i + 1];
        arrs[i + 1] = temp;
    }
    arrs[strlen(arrs)] = 0;
    printf("%s", arrs);
}

 

#include <string>
int main()
{
	char ch;
	int i,j, n;
	scanf("%c", &ch);
	char a[20] = { 0 };
	scanf("%s", a);
	n = strlen(a);
	for (i = 0; i < n; i++)
	{
		if (ch == a[i])
		{
			for (j = i + 1; j < n; j++)
			{
				a[j - 1] = a[j];
			}
			a[j-1] = 0;
			n--;
		}
	}
	printf("结果是:%s\n", a);
	return 0;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

输入串长小于20的任意字符串和指定字符,删除其中的指定字符