Chat with our AI personalities
Statement S2 is anti-dependent on statement S1 if S2 follows S1 in program order and if the output of S2 overlaps the input of S1. The anti-dependence S1 to S2 define as cross arrow such as S1 |-> S2.
strlen(s1) to find the length of the string s1 strcpy(s1,s2) copy source string to destination string(i.e copies s2 to s1,s2 remain unchanged) strcmp(s1,s2) compares s1 and s2 and prints 0 if s1 and s2 are equal,-1 if s2 is greater, 1 if s1 is greater strcat(s1,s2) combines string s1 and s2 to a single word and stores it in s1 strupr() converts lower case string to upper case strlwr() converts upper case string to lower case
char *strmerge (char *s3, const char *s1, const char *s2) { strcpy (s3, s1); strcat (s3, s2); return s3; }
unsigned char * memcpy(unsigned char * s1, unsigned char * s2, long size) { long ix; s1= (char *)malloc(sizeof(strlen(s2))); for(ix=0; ix < size; ix++) s1[ix] = s2[ix]; return s1; }
/* ellipses, ..., used to emulate indentation */ int strcmp (const char* s1, const char* s2) { ... while (s1 != NULL && s2 != NULL) { /* scan both strings */ ... ... if (*s1 < *s2) return -1; /* first string less */ ... ... if (*s1 > *s2) return 1; /* first string greater */ ... ... s1++; ... ... s2++; ... } ... if (s1 == s2) return 0; /* strings equal or both empty */ ... if (s1 != NULL) return 1 else return -1; /* first string longer(1) / shorter(-1) */ } A slightly less computation-intensive version is: int strcmp(const char* s1, const char* s2) { ... if (s1==s2) ... ... return 0; ... while (*s1) ... ... if (*s1++^*s2++) ... ... ... if (--s1<--s2) ... ... ... ... return -1; ... ... ... else ... ... ... ... return 1; ... return 0; }