注册 登录
编程论坛 C++教室

十万火急 求助啊!!!涉及大一菜鸟挂科问题!!各位高手来帮忙啊

少年007 发布于 2011-05-28 13:00, 515 次点击
各位高手帮小弟个忙,小弟初学者,帮忙修改一下下面的主函数,使他输出的两个字符串相同的部分是对齐的!!!!相同部分对齐啊!!!
例如:输入 English和lis
      输出 English
              lis
而不是输出 English
           lis



#include "stdio.h"
char p(char str1[],char str2[])
    {
    int i=0,j=0,k=0;
    for(i=0;str1[i];i++)
        {
        j=i;
        for(k=0;str1[j]==str2[k];j++,k++);
        if(!str2[k])
            return ++i;
        }
    return 0;
    }

main(void)
    {int j,a;
    char str1[100],str2[100];
    printf("Please input str1 :   ",&str1);
    gets(str1);
    printf("Please input str2 :   ",&str2);
    gets(str2);
    if(p(str1,str2))
        {
        printf("The start position is %d\n",p(str1,str2));
        printf("Result:\n%s\n",str1);
        printf("%s\n",str2);
        }
    else
        {
        printf("str1 don't include str2!\n");
        }
    return 0;
    }

补充:因为输入的两个字符串不固定,所以后一个字符串对齐的位置不会随之改变,想要让它的对齐位置随输入字符串的改变而改变
3 回复
#2
诸葛修勤2011-05-28 15:09
程序代码:
#include <iostream>
#include <string>
using namespace std;

int main(void)
{
    string src;
    string substr;
    string::size_type index;

    cin >> src;
    cin >> substr;

    index = src.find(substr);
    if (index == string::npos)
    {
        cout << "error" << endl;
    }
    else
    {
        cout << src << endl;
        string out(index, ' ');
        cout << out.append(substr) << endl;
    }
   

    return 0;
}
#3
lucky5635912011-05-28 15:37
又是C问题
#4
为啥我寂寞2011-06-25 19:17
围观
1