Написать функцию, которая возвращает 1, если строка str1 расположена в конце строки str2 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написать и протестировать функцию STREND(str1, str2), которая возвращает 1, если строка str1 расположена в конце строки str2, и 0 - в противном случае. Начал писать (пока без функции), но чтот оно не хочет правильно работать. Суть в том, чтоб проверить 1 строку и 2 строку с конца на совпадения...
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
void main()
{
    int dlin1str;
    int dlin2str;
    int j=0;
    int i;
   // char str1[50];
   // char str2[100];
//  gets(str1);
//  gets(str2);
//  puts(str1);
//  puts(str2);
char str1[]="CTPOKA";
char str2[]="String2. CTPOKA";
    dlin2str=strlen(str2);
    dlin1str=strlen(str1);
    j=dlin1str;
printf("%d %d\n",dlin1str,dlin2str);
    for(i=dlin2str;i>=0;i--)
    {
        if(str2[i]==str1[j])
        {
 printf("%c %c Ok!\n",str1[i],str2[j]);
        }
        j--;
    }
}

Решение задачи: «Написать функцию, которая возвращает 1, если строка str1 расположена в конце строки str2»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
    
// возвращает 1, если строка bigStr заканчивается строкой shortStr
int strend(const char * bigStr, const char * shortStr){
    int bigLen, shortLen;
    return ( bigStr && shortStr && ( bigLen = strlen(bigStr) ) >= ( shortLen = strlen(shortStr) ) )
        ? ! ( strcmp(bigStr + bigLen - shortLen, shortStr) ) : 0;
}
 
int main(void){
    char bigStr[BUFSIZ], shortStr[BUFSIZ];
    
    while ( printf("Big string: ") && scanf("%[^\n]%*c", bigStr) == 1
        && printf("Short string: ") && scanf("%[^\n]%*c", shortStr) == 1 )
            printf("Big string %sends with short string.\n", ( strend(bigStr, shortStr) ) ? "" : "not ");
    
    return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы