OJ刷題之《複製字串》

不被看好的青春叫成長發表於2015-01-08

Description

有一字串,包含n個字元。寫一函式,將此字串中從第m個字元開始的全部字元複製成為另一個字串。

Input

數字n 一行字串數字m

Output

從m開始的子串

Sample Input

6
abcdef
3

Sample Output

cdef

HINT

 主函式已給定如下,提交時不需要包含下述主函式


/* C程式碼 */


int main()

{

    char s1[256],s2[256];

    int n,pos,i;

    scanf("%d",&n);

    getchar();

    for(i=0;i<n;i++)

       scanf("%c",&s1[i]);

    s1[n]='\0';

    scanf("%d",&pos);

    strcpypos(s2,s1,pos);

    printf("%s\n",s2);

    return 0;

}



/* C++程式碼 */

int main()

{

    char s1[256],s2[256];

    int n,pos,i;

    cin>>n;

    cin.get();

    cin.getline(s1,n+1);

    cin>>pos;

    strcpypos(s2,s1,pos);

    cout<<s2<<endl;

    return 0;

}

程式碼如下:

#include <iostream>
using namespace std;
void strcpypos(char *s2,char *s1,int pos)
{
    int i;
    for (i=0;*(s1+pos-1)!='\0';i++)
    {
        *(s2+i)=*(s1+pos-1);
        pos++;
    }
    *(s2+i)='\0';
}

int main()
{
    char s1[256],s2[256];
    int n,pos,i;
    cin>>n;
    cin.get();
    cin.getline(s1,n+1);
    cin>>pos;
    strcpypos(s2,s1,pos);
    cout<<s2<<endl;
    return 0;
}

不知道怎麼了,上傳圖片一直是* 由於連線方在一段時間後沒有正確答覆或連線的主機沒有反應,連線嘗試失敗。  總之結果是正確的,需要注意的地方就是兩個*(s1+pos-1)一定要減去1,前面那個忘了減去1後當你兩個數字輸入相同的時候它顯示的會是空格而不是最後一個字元





相關文章