用c语言编写1、判断字符串是否为回文?若是,则输出YES,否则输出NO。回文是指顺读和倒读都一样的字符串。 2、将s数组中下标为偶数同时ASCII值为奇数的字符删除,s串中剩余的字符形成的新串放在数组中,并输出。 3、将s数组中的字母转换为按字母序列的后续字母(但z转换为A,z转换为a),其他字符不变。 4、编写程序,输入任意一个含有空格的字符串(至少 10 个字符),删除指定位置的字符后输出该字符串。如:输入"BEIJING123"和删除位置 3,则输出:"BEIING123"。
时间: 2024-03-17 07:42:31 浏览: 101
以下是本人编写的c语言代码,实现了上述四个问题的功能:
1、判断字符串是否为回文:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
for (i = 0; i < len / 2; i++)
{
if (str[i] != str[len - i - 1])
{
flag = 1;
break;
}
}
if (flag)
printf("NO\n");
else
printf("YES\n");
return 0;
}
```
2、将s数组中下标为偶数同时ASCII值为奇数的字符删除:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s[100], new_s[100] = {0};
int i, j = 0, len;
printf("请输入字符串:");
scanf("%s", s);
len = strlen(s);
for (i = 0; i < len; i++)
{
if (i % 2 == 0 && s[i] % 2 != 0)
continue;
else
new_s[j++] = s[i];
}
printf("删除指定字符后的字符串为:%s\n", new_s);
return 0;
}
```
3、将s数组中的字母转换为按字母序列的后续字母:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char s[100];
int i, len;
printf("请输入字符串:");
scanf("%s", s);
len = strlen(s);
for (i = 0; i < len; i++)
{
if (s[i] >= 'A' && s[i] <= 'Z')
s[i] = (s[i] - 'A' + 1) % 26 + 'A';
else if (s[i] >= 'a' && s[i] <= 'z')
s[i] = (s[i] - 'a' + 1) % 26 + 'a';
}
printf("转换后的字符串为:%s\n", s);
return 0;
}
```
4、删除指定位置的字符:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, pos;
printf("请输入字符串:");
fgets(str, sizeof(str), stdin);
len = strlen(str);
if (str[len - 1] == '\n')
str[len - 1] = '\0';
printf("请输入要删除的位置:");
scanf("%d", &pos);
for (i = pos - 1; i < len - 1; i++)
str[i] = str[i + 1];
str[len - 1] = '\0';
printf("删除指定位置后的字符串为:%s\n", str);
return 0;
}
```
希望我的回答能够帮助到你!
阅读全文