void parentheses(char *, const char word *);
26.03.2010 - 16:51 tarihinde nerg gönderdi
void parentheses(char *, const char word *);
Bu fonksiyon, birinci parametresinde bulunan karakter disizi içinde, ikinci parametresinde bulunan karakter dizisini arar. Eğer bulursa, bu karakter dizisini parantez içine alır.
Örnek ekran çıktısı:
first string: spikerler kagida bakmadan konussun
second string: kagida
spikerler (kagida) bakmadan konussun
Kaynak kod:
#include <stdio.h> #include <string.h> #define ARRAY_SIZE 100 int mystrstr(const char *p, const char *q); void parentheses(char *str, const char *word); void insert(char *str, int ch, int pos); int main() { char a[ARRAY_SIZE]; char b[ARRAY_SIZE]; printf("\nfirst string: "); gets(a); printf("second string: "); gets(b); parentheses(a, b); printf("\n%s", a); return 0; } /***************************************************** birinci parametresinde bulunan adresteki karakter dizisi icinde, ikinci paramatresindeki adreste bulunan karakter dizisini arar. bulundugu yerin indis numarasini dondurur. araman karakter dizisi bulunamazsa -1 dondurur. *****************************************************/ int mystrstr(const char *p, const char *q) { int i, j; int lenq = strlen(q), lenp = strlen(p); for (i = 0; i <= lenp - lenq; i++) { for (j = 0; q[j] != '\0'; j++) if (p[i + j] != q[j]) break; if (q[j] == '\0') return i; } return -1; } /****************************************************/ void parentheses(char *str, const char *word) { int pos; if ((pos = mystrstr(str, word)) == -1) return; insert(str, '(', pos); insert(str, ')', pos + strlen(word) + 1); } /***************************************************** birinci parametresinde buluna karakter dizisine ikinci parametresinde bulunan karakteri, bu karakter pos indisli eleman olacak sekilde yerlestirir. *****************************************************/ void insert(char *str, int ch, int pos) { int i; for (i = 0; str[i] != '\0'; i++) ; for (; i >= pos; i--) str[i + 1] = str[i]; str[pos] = ch; }
Etiketler:
