黑马程序员技术交流社区
标题: 一道题 [打印本页]
作者: 白小七 时间: 2016-8-9 23:34
标题: 一道题
/*
//3 10分
在控制台上输入一个字符串,过滤这个字符串,只保留这个字符串中的小写字母.
*/
#import <Foundation/Foundation.h>
#define LEN 20
int main(int argc, const char * argv[]) {
//定义数组保存用户输入的字符串
char str[LEN];
NSLog(@"请您输入字符串");
rewind(stdin);
//接收用户输入的字符串
fgets(str,LEN, stdin);
size_t len = strlen(str);
if (str[len-1] == '\n') {
str[len-1] = '\0';
}
//遍历数组
for (int i = 0; i<len; i++) {
//判定是否为大写,如果为大写所有后面字母往前赋值
if (str >='A' && str <= 'Z') {
for (int j = i; j<len; j++) {
str[j] = str[j+1];
}
}
//再次判定交换后是否为大写,如果是不自增
if (str >='A' && str <= 'Z') {
i--;
}
}
//再次遍历改变后的数组
for (int i = 0; i<len; i++) {
printf("%c",str);
}
printf("\n");
return 0;
}
作者: 李江波 时间: 2016-8-10 09:34
交流下,我这个办法也可以哦
#import <Foundation/Foundation.h>
#define len 30
int main(int argc, const char * argv[]) {
@autoreleasepool {
char ch[len];
char ch2[len];
int j = 0;
NSLog(@"请输入字符串");
scanf("%s",ch);
for (int i =0; i< strlen(ch); i++) {
if (ch[i]<='z' && ch[i] >= 'a') {
ch2[j] = ch[i];
j++;
}
}
printf("%s\n",ch2);
}
return 0;
}
作者: anan安 时间: 2016-8-10 23:49
不错的解法收藏了
作者: 爱面包的文森特 时间: 2016-8-11 11:28
这个是点招题吗
作者: 18072727834 时间: 2016-8-11 22:10
赞 解得不错 收藏
作者: anan安 时间: 2016-8-11 23:41
还可以遍历出每个字符的个数
strlen 也可以求数组字符的长度是吧?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |