uva 10115 Automatic Editing(strstr+sprintf)

来源:互联网 发布:windows10视频剪辑软件 编辑:程序博客网 时间:2024/06/05 12:38

题意是找到一个字符串里面的关键字,然后用另外的关键字来替换她。


学习了   strstr  和 sprintf   的用法。


代码:

#include <stdio.h>#include <string.h>int main(){#ifdef LOCAL    freopen("in.txt","r",stdin);#endif // LOCAL    int k;    while (scanf("%d", &k) != EOF && k)    {        getchar();        char key[21][81], s[256], tmp[256];        for (int i = 0; i < 2 * k; i++)        {            gets(key[i]);        }        gets(s);        for (int i = 0; i < 2 * k; i += 2)        {            int len1 = strlen(key[i]);            int len2 = strlen(key[i + 1]);            while (1)            {                char *p;                p = strstr(s, key[i]);//找到匹配的地址                if(p == NULL)                    break;                sprintf(tmp, "%s", p + len1);//将指针 p + strlen(key[i])之后的字符赋给tmp                sprintf(p, "%s", key[i + 1]);//将指针p之后赋上key[i+1]的字符串                sprintf(p + len2, "%s", tmp);//将key[i]之后的字符串还原            }        }        printf("%s\n", s);    }    return 0;}


0 0
原创粉丝点击