|
|
|||||||
| قسم أرشيف منتديات الجامعة القسم مغلق بحيث يحوي مواضيع الاستفسارات و الطلبات المجاب عنها ..... |
في حال وجود أي مواضيع أو ردود
مُخالفة من قبل الأعضاء، يُرجى الإبلاغ عنها فورًا باستخدام أيقونة
( تقرير عن مشاركة سيئة )، و الموجودة أسفل كل مشاركة .
| آخر المواضيع |
|
(لمحترفي لغة السي++) aide moi svp segmentation d'un document texte
|
|
أدوات الموضوع | انواع عرض الموضوع |
|
|
رقم المشاركة : 1 | ||||
|
|
||||
|
|
رقم المشاركة : 2 | |||
|
nothing special... |
|||
|
|
رقم المشاركة : 3 | |||
|
pfffffffffffffffffffffffffffffffffffff |
|||
|
|
رقم المشاركة : 4 | |||
|
استخدم المكتبة القياسية C++ Standard Library ستجد بها كل ما تحتاجه. |
|||
|
|
رقم المشاركة : 5 | |||
|
................................. |
|||
|
|
رقم المشاركة : 6 | |||
|
c'est bien d'utiliser flex and yacc sous unix pour faire une analyse lexicale كود:
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#include<string.h>
char *mc[10]={"create","select","insert","into","from","all","table","values","where","sum"};
char *sep[10]={" ","(",")",",",":",";","."};
char *op[20]={"=","<",">","!=","==",">=","<=","+","-","/","*"};
char *id[30];
char *num[30];
char f[40];
int ismc(char* a)//recherche des mots clé
{
int i=0;
while (mc[i]!=NULL)
{
if(strcmp(mc[i],a)) i++;
else return 1;
}
return 0;
}
int issep(char* a)//recherche des separateurs
{
int i=0;
while (sep[i]!=NULL)
{
if(strcmp(sep[i],a)) i++;
else return 1;
}
return 0;
}
int isop(char *a)//recherche des operateurs
{
int i=0;
while (op[i]!=NULL)
{
if(strcmp(op[i],a)) i++;
else return 1;
}
return 0;
}
int main(void)
{
int jj=0;
printf("entrer une chaine:");
char p[100];
gets(p);
char l[2];char m[2];
int i=0;int k=0;
int j=0,cpt=0,d,a,b;
while (p[i]!='\0')
{
l[0]=p[i];l[1]='\0';
if(isalnum(p[i])) d=1;
else d=0;
a=issep(l);b=isop(l);
switch(d)
{
case 0:
if(issep(l)) {i++;}
else if(isop(l)){
m[0]=p[i+1];
m[1]='\0';
if (issep(m)|| isalnum(p[i+1])) {printf("\noperateur:'%s'\n",l); i++; }
else {if(isop(strncat(l,m,1))&&(m[0]!='\0')) {printf("\noperateur:'%s'\n",l);i++;i++;}
else {l[1]='\0';printf("\noperateur:'%s'\n",l);i++;}}}
else {
m[0]=p[i+1];
m[1]='\0';
if(isop(strncat(l,m,1))&&(m[0]!='\0')) {printf("\noperateur:'%s'\n",l);i++;i++;}
else {l[1]='\0';printf("\nerror lexiqal: operateur inconnu '%s' \n",l);i++;}}
break;
case 1:
jj=0;
while(isalnum(p[i]))
{
while(isdigit(p[i]))
{
f[jj]=p[i];
f[jj+1]='\0';
i++;
jj++;
}
if(jj) { num[k]=f;
printf("\nnombre[%d]:%s\n",k,num[k]);
k=k+1;
break;
}
while(isalnum(p[i]))
{
f[jj]=p[i];
f[jj+1]='\0';
jj++;
i++;
}
if(ismc(f)==0){
id[j]=f;
printf("\nidentificateur[%d]:%s\n",j,id[j]);
j=j++;}
else printf("\nmot cle:%s\n",f);
}
}
}
getch();
}
|
|||
|
|
رقم المشاركة : 7 | |||
|
شكراا جزيلاا |
|||
| الكلمات الدلالية (Tags) |
| (لمحترفي, aide, السي++), d'un, document, segmentation, texte |
|
|
المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى
المنتدى غير مسؤول عن أي إتفاق تجاري بين الأعضاء... فعلى الجميع تحمّل المسؤولية
Powered by vBulletin .Copyright آ© 2018 vBulletin Solutions, Inc