c语言编程输入一个字符串,编程实现其中字母字符放在前面,数字字符放在后面形成一个新串,并输出
时间: 2024-03-20 11:40:11 浏览: 100
好的,我可以帮你解决这个问题。你可以使用两个指针,一个指向字符串的起始位置,另一个指向字符串的末尾位置。然后,使用一个循环遍历字符串中的每个字符,判断该字符是字母还是数字,如果是字母就将其复制到新串的起始位置,并将起始位置向后移动一个字符;如果是数字就将其复制到新串的末尾位置,并将末尾位置向前移动一个字符。当两个指针相遇时,说明遍历完了整个字符串,此时新串就是你要的结果。
以下是代码示例:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char str[100], newstr[100];
int i, j, len;
printf("请输入一个字符串:");
fgets(str, 100, stdin); // 从标准输入读取字符串
len = strlen(str);
i = 0;
j = len - 1;
while (i <= j)
{
if (isalpha(str[i])) // 判断是否为字母
{
newstr[i] = str[i];
i++;
}
else if (isdigit(str[j])) // 判断是否为数字
{
newstr[j] = str[j];
j--;
}
else // 如果既不是字母也不是数字,则跳过该字符
{
i++;
j--;
}
}
newstr[len] = '\0'; // 添加字符串结束符
printf("新串为:%s\n", newstr);
return 0;
}
```
你可以尝试运行代码并输入一个字符串,看看输出结果是否符合你的要求。
阅读全文