MercuryDPM  Trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Case.cc
Go to the documentation of this file.
1 //Copyright (c) 2013-2020, The MercuryDPM Developers Team. All rights reserved.
2 //For the list of developers, see <http://www.MercuryDPM.org/Team>.
3 //
4 //Redistribution and use in source and binary forms, with or without
5 //modification, are permitted provided that the following conditions are met:
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above copyright
9 // notice, this list of conditions and the following disclaimer in the
10 // documentation and/or other materials provided with the distribution.
11 // * Neither the name MercuryDPM nor the
12 // names of its contributors may be used to endorse or promote products
13 // derived from this software without specific prior written permission.
14 //
15 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 //ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 //WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 //DISCLAIMED. IN NO EVENT SHALL THE MERCURYDPM DEVELOPERS TEAM BE LIABLE FOR ANY
19 //DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 //(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 //ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 //(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 
26 #include<cstdio>
27 #include<cstring>
28 #include<cctype>
29 #include<cstdlib>
30 
36 char* strtolower(char* str)
37 {
38  for (int i = 0; i < strlen(str); i++)
39  str[i] = tolower(str[i]);
40  return str;
41 }
42 
48 char* strtoupper(char* str)
49 {
50  for (int i = 0; i < strlen(str); i++)
51  str[i] = toupper(str[i]);
52  return str;
53 }
54 
62 int strcicmp(const char* s1, const char* s2)
63 {
64  char* t1 = (char*) calloc(strlen(s1) + 1, sizeof(char));
65  char* t2 = (char*) calloc(strlen(s2) + 1, sizeof(char));
66  strncpy(t1, s1, strlen(s1));
67  strncpy(t2, s2, strlen(s2));
68  strtolower(t1);
69  strtolower(t2);
70  int out = strcmp(t1, t2);
71  if (out != 0)
72  out = 1;
73 
74  free(t1);
75  free(t2);
76  return out;
77 }
int strcicmp(const char *s1, const char *s2)
Case-insensitive string comparison.
Definition: Case.cc:62
const std::complex< Mdouble > i
Definition: ExtendedMath.h:50
char * strtoupper(char *str)
Converts a string to all upper case.
Definition: Case.cc:48
char * strtolower(char *str)
Converts a string to all lower case.
Definition: Case.cc:36