注册 登录
编程论坛 C语言论坛

从键盘输入一串字符串,再输入1个位数,删除对应位数的字符,然后输出删除字符后的字符串。

何冠希 发布于 2019-12-07 18:57, 2454 次点击
Description
从键盘输入一串字符串,再输入1个位数,删除对应位数的字符,然后输出删除字符后的字符串。
Input
输入一串字符串以及一个位数(保证字符串长度小于50)
Output
删除字符后的字符串
Sample Input
Raw
abcdef 5
Sample Output
Raw
abcde
Hint
1、输入字符串,获取字符串的有效字符长度。
2、通过循环判断是否是要删除的字符。
3、注意是从0开始计算位数。
3 回复
#2
rjsp2019-12-08 11:20
程序代码:
char* foo( char* s, size_t idx )
{
    size_t n = strlen(s);
    if( idx < n )
        memmove( s+idx, s+idx+1, n-idx );
    return s;
}
#3
纯蓝之刃2019-12-08 12:15
程序代码:
#include <stdio.h>
#include <string.h>

int main(void)
{
    char a[51]={0};
    int n;
    printf("请输入一个字符串:");
    scanf("%s",a);
    printf("请输入位数:");
    scanf("%d",&n);
    strcpy(a+n-1,a+n);
    printf("输出字符串:%s",a);
    return 0;
}


[此贴子已经被作者于2019-12-8 12:30编辑过]

#4
纯蓝之刃2019-12-08 12:20
程序代码:
#include <stdio.h>
#include <string.h>

int main(void)
{
    char a[51]={0};
    int n,len,i;
    printf("请输入一个字符串:");
    scanf("%s",a);
    printf("请输入位数:");
    scanf("%d",&n);

    len=strlen(a);
    for(i=0;i<len+1;i++)
    {
        if(i>n-1)
           a[i-1]=a[i];
    }

    printf("输出字符串:%s",a);
    return 0;
}


[此贴子已经被作者于2019-12-8 12:38编辑过]

1