回 帖 发 新 帖 刷新版面

主题:字符串复制

有一个字符串,包括n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串。
要求在主函数输入字符串及m值并输出复制结果。 
(知识点:控制语句、字符串、指针
输入描述:
输入为一个字符串(长度小于80)及一个整形数(小于字符串的实际长度)
输出描述描述:
输出为一个字符串
样式输入:
abcdefghijklmnopqrst
8
样式输出:
hijklmnopqrst
这是我写的程序:求解
 
#include<stdio.h>
#include<string.h>
#define N 100
void fun(char a[N])
{
    int i,t,k=0;
    
    gets(a);
    t=strlen(a);
    for(i=t-1;i>=0;i++)
    {
        if(a[i]=='*')
            k++;
        else 
            break;
    }
    for(i=0;i<t-k-1;i++)
        printf("%c",a[i]);
}
int main()
{
    char b[N];
    fun(b);
    return 0;
}

回复列表 (共2个回复)

沙发

for(i=t-1;i>=0;i++)
    {
        if(a[i]=='*')
            k++;
        else 
            break;
    }
中的a[i]=="*";不知道什么意思。而且循环用的是i++,但是从for(i=t-1;i>=0;i++)中看出,i的初始值大于i的结束值,应该为i--;

给出一个程序.
但是没有使用您说的要求。
望参考   谢谢

#include<stdio.h>
#include<string.h>
#define N 100
void fun(char a[N])
{
    int i,t,k=0;

    clrscr();
    gets(a);
    t=strlen(a);
    scanf("%d",&k);
    for(i=k+1;i<t;i++)
    printf("%c",a[i]);
}
int main()
{
    char b[N];
    fun(b);
    return 0;
}


板凳

#include <stdio.h>
#include <stdlib.h>
#define N 100

void stringcpy(const char *,int);

int main(void){
char string[N];
int  pos;
printf("Enter string:\n");
gets(string);
printf("Enter position:\n");
scanf("%d",&pos);

stringcpy(string,pos);

return 0;
}

void stringcpy(const char * pst,int pos){
char r[N];

memmove(r,pst+pos,strlen(pst)-pos+1);
puts(r);

return;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册