Microsoft Interview Question
Software Engineer in Tests#include<iostream>
#include<string>
using namespace std;
int compareStrings(string &s1, string &s2)
{
int i = 0;
for(i=0;(s1[i]&&s2[i])&&(s1[i]==s2[i]);i++);
if((s1[i] == '\0') && (s2[i] == '\0') )
return 0; //cout <<"Strings are equal" <<endl;
else if(s1[0] == '\0' || s1[0] < s2[0])
return -1;
else
return 1;
}
int main()
{
string s1("Gajanan"),s2("Gajanan");
//if(s1 == s2)
//cout<<"Strings are equal" <<endl;
//cout<<s1[0];
//cout<<(s1);
cout<<"Enter string1 = ";
cin >>s1;
cout<<"Enter string1 = ";
cin >>s2;
int i = compareStrings(s1,s2);
if(i == 0)
cout <<"Strings are equal"<<endl;
if(i == -1)
cout <<"First string is smaller" <<endl;
if(i == 1)
cout <<"Second string is smaller" <<endl;
return 0;
}
#include<iostream>
#include<string>
using namespace std;
int compare (string str1, string str2)
{
int i = 0;
while (i < str1.length() && i < str2.length())
{
if (str1[i] > str2[i])
return 1;
else if (str2[i] > str1s[i])
return -1;
i++;
}
if (str1.length() > i)
return 1;
else if (str2.length() > i)
return -1;
return 0;
}
int main(int argc, char argv[])
{
int compare (string str1, string str2);
string s1 = "bhushan", s2 = "bhushan";
int ret = compare(s1, s2);
cout << ret << endl;
return 0;
}
int strcmp(char *str1,char *str2)
{
for(;*str1==*str2;str1++,str2++)
if(str1=='\0')
return 0;
return *str1-*str2;
}
public bool String_Compare(string string1, string string2)
{
bool equal = false;
for (int i = 0; i < string2.Length; i++)
{
if (string1[i] != '\0' && string2[2] != '\0')
{
if (string1[i] == string2[i])
{
equal = true;
}
}
}
return equal;
}
Test Cases:- Equal String, Uequal String and One string will be empty
compare(char *str1 , char *str2)
- P December 22, 2009{
while(*str1 == *str2 && str1!=NULL && str2!=NULL)
{
str1++;
str2++;
}
if(((str1 == NULL) && (str2 == NULL)) || (*str1 == *str2) )
return 0; // equal
else if ( str1 == NULL || *str1<*str2 )
return -1; // less
else if
return 1; //greater
}