Строки

spellproff

Доброго времени суток,задали задачу,пробовал её решить но решил не до конца так как дальше фантазия иссякла....прощу вашей помощи Задание: Преобразовать строку,содержащую выражение на Си с операциями (=,==,!=,a+=,a-=),в строку,содержащую эти же операции с синтаксисом языка Паскаль (:=,=,#,a=a+,a=a-) Что удалось намудрить:
#include <stdio.h>
#include <conio.h>
#include <math.h>
str[]
str new[] k=0;
for(int i=0;i<length(str);if+)
if(str[i]=="=") {str new []=':' ;
k++; str new [k]='=';}
спасибо заранее за ващу помощь...
4 ответа

spellproff

str new []
new - это оператор языка.


spellproff

new - это оператор языка.
Так вроде ТС пишет на Си, так что new там не зарезервированое имя.


spellproff

Так вроде ТС пишет на Си, так что new там не зарезервированое имя.
str[]
str new[] k=0;
ТС вообще что-то непонятное делаетА в чем собственно проблема?


spellproff

Добрый вечер! Частичное решение.
/* Преобразовать строку,содержащую выражение на Си
с операциями (=,==,!=),в строку,содержащую
эти же операции с синтаксисом языка Паскаль (:=,=,<>)
*/
#include <stdio.h>
int main(void)
{
    enum {SIZE=100};
    char s1[SIZE], s2[SIZE];
    int i, j;
 
    scanf("%s", s1);
 
    i=j=0;
    while (s1[i]!='\0')
    {
        if (s1[i]=='=' && s1[i+1]=='=')
        {
            s2[j++]='=';
            i+=2;
        }
        else if (s1[i]=='!' && s1[i+1]=='=')
        {
            s2[j++]='<';
            s2[j++]='>';
            i+=2;
        }
        else if (s1[i]=='=')
        {
            s2[j++]=':';
            s2[j++]='=';
            i++;
        }
        else
            s2[j++]=s1[i++];
    }
    s2[j]='\0';
 
    printf("%s", s2);
 
    return 0;
}