infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Bogdan Ionut din Octombrie 04, 2009, 12:39:23



Titlul: explicare cod
Scris de: Bogdan Ionut din Octombrie 04, 2009, 12:39:23
Imi poate explica cineva pe rand secventele din while?

Cod:
#include<iostream>
#include<string.h>
#include<conio.h>
using namespace std;
char S[250], s2[250], s[250], s1[250];
int u, i, p;
int main()
{
    cin.getline(s,100);
    cin.getline(s1,100);
    cin.getline(s2,100);
    do
    {
        char * pt=strstr(s, s1);
        if(!pt)
        {   for(i=u;i<strlen(s);i++)
                strncat(S,s+i,1);
                break;
        }
        p=pt-s;
        for(i=u;i<p;i++) S[i]=s[i];
       
        for(i=p;i<p+strlen(s1);i++)
            s[i]='!';
       
        for(i=p;i<p+strlen(s2);i++)
            strncat(S,s2+i-p,1);
       
        u=p+strlen(s1);
   
    }
    while(1);
    cout<<S;
    getch();
    return 0;
}

l-am scris ordonat sa se inteleaga. de exemplu la strncat(S,s+i,1); copie pe rand cate-un caracter din s in S sau cum?


Titlul: Răspuns: explicare cod
Scris de: A Cosmina - vechi din Octombrie 04, 2009, 13:24:42
strncat() (http://cplusplus.com/reference/clibrary/cstring/strncat/)
getline() (http://cplusplus.com/reference/string/getline/)
strstr() (http://cplusplus.com/reference/clibrary/cstring/strstr/)

Strlen (http://cplusplus.com/reference/clibrary/cstring/strlen/) banuiesc ca stii. :)