Работаю над контрольными по С++.
В задании сказано отладить следующие программы:
/* Задание 2 */
#include <stdio.h>
#include <string.h>
//////////////////////
int strlen(char *str)
{
int i=0;
while(*str++) i++; //for(i=0; *str; str++) i++;
return i;
}
//////////////////////
int SizeWord(char *express)
{
int size=0;
while(*express==' ') express++;
while(*express)
{
if(*express==' ')
{
size++;
while(*express==' ') express++;
}
else
express++;
}
return size; //error!
}
/////////////////////////////
int strcmp1(char *str1, *str2)
{
while(str1*)
{
if(*str1++!=str2++) return 0;
}
return 1;
}
///////////////////////////////
int strcmp2(char *str1, char *str2)
{
while(1)
{
if(*str1>*str2) return 1;
else
if(*str1<*str2) return -1;
else
if(!*str1) return 0;
str1++;
str2++;
}
}
Вроде отладил, все работает. Но не уверен правильно ли делаю. Вот отлаженные коды.
Пример 1.
#include <stdio.h>
#include <string.h>
char *str = "A from in Russia";
int i=0;
int strlen()
{
while(*str++) i++;
return i;
}
int main ()
{
printf("%d\n",strlen());
return 0;
}
Пример 2.
#include <stdio.h>
#include <string.h>
char *express = "Hello my friend, how are you? I have work in your compani";
int SizeWord()
{
int size = 0;
while(*express == ' ') express++;
while(*express)
{
if(*express == ' ')
{
size++;
while(*express == ' ') express++;
}
else
express++;
}
return size;
}
int main ()
{
printf("Колличество слов в предложении = %d\n", SizeWord());
return 0;
}
Пример 3.
#include <stdio.h>
#include <string.h>
char *str1 = "A from in Russia";
char *str2 = "I'm from in Russia";
int strcmp1()
{
while(*str1)
{
if(*str1++ != *str2++) return 0;
}
return 1;
}
void main ()
{
printf("%d\n",strcmp1());
}
Пример 4.
#include <stdio.h>
#include <string.h>
char *str1 = "I'm from in Russia";
/*char *str2 = "I'm from in Russia";*/
int strcmp2(char *str2 = "I'm from in Russia")
{
while(1)
{
if(*str1>*str2) return 1;
else
if(*str1<*str2) return -1;
else
if(!*str1) return 0;
str1++;
str2++;
}
}
void main()
{
printf("%d\n",strcmp2());
}
И можно ли все эти функции реализовать в одном проекте?