C程序将句子中的第一个字符转换为大写
给定一个字符串,并将混合的情况下,即用大写和小写,任务是隐蔽的第一个字符为大写休息小写,如果是大写。
让我们来了解它的深度用一个简单的例子来。
就像给我们一个字符串“hElLoworld”一样,我们必须将小写的第一个字符“h”转换为大写的“H”,并将字符串的空格或结尾之前的所有字母都保留为小写。
此外,当我们遇到的第一个字符后有一个空格,我们必须将其转换为大写。
示例
Input: str[] = {“heLlO wORLD”}
Output: Hello World
Input: str[] = {"sUNIDHi bAnSAL"}
Output: Sunidhi Bansal下面使用方法如下-
为了解决这个问题,我们将使用字符的ASCII值。
ASCII代表“美国信息交换标准代码”,意味着每个字符都有一些与之关联的代码。像大写字母AZ一样,给定的数值范围为65-90,小写字母az的数值范围为97-122。因此,我们将使用这些值来解决我们的问题。
我们将遍历整个字符串,
检查空格“”之后的第一个字符或紧接字符是否在az范围内,然后我们将减去“A”和“a”的ASCII值,然后将结果添加至该字符。
如果它不是第一个字符,也不是紧接在该空格之后的字符,那么我们必须检查该字符是否为大写,然后转换为小写,然后将字符的值加上“a”-“A”的减法结果。
算法
Start
In Function int firstupper(char str[], int n)
Step 1-> Initialize int i
Step 2-> Loop For i = 0 And i<n And i++
If i == 0 && str[i] != ' ' || str[i] != ' ' && str[i-1] == ' ' then,
If str[i] >= 'a' && str[i]<='z' then,
str[i] = (char)(('A'-'a') + str[i] )
End If
Else If str[i] >= 'A' && str[i] <= 'Z' then,
str[i] = (char)(str[i] + ('a' - 'A'))
End If
End Function
In Function int main(int argc, char const *argv[])
Step 1-> Declare and initialize char str[] = {"sUNIDHi bAnSAL"}
Step 2-> Declare n set as sizeof(str)/sizeof(str[0])
Step 3-> firstupper(str, n)
Step 4-> Print "%s\n", str
End main示例
#include <stdio.h>
int firstupper(char str[], int n) {
int i;
for(i = 0; i<n; i++) {
if (i == 0 && str[i] != ' ' || str[i] != ' ' && str[i-1] == ' ') {
if(str[i] >= 'a' && str[i]<='z') {
str[i] = (char)(('A'-'a') + str[i] );
}
} else if (str[i] >= 'A' && str[i] <= 'Z') {
str[i] = (char)(str[i] + ('a' - 'A'));
}
}
return 0;
}
int main(int argc, char const *argv[]) {
char str[] = {"sUNIDHi bAnSAL"};
int n = sizeof(str)/sizeof(str[0]);
firstupper(str, n);
printf("%s\n", str);
return 0;
}输出结果
Sunidhi Bansal