Я новичок в Objective C, поэтому никаких сложных слов вам не нужно. Я делаю программу, которая удаляет определенные символы (гласные, согласные, punct и т. Д.), Но когда я пытался для пользователя ввести свой собственный оператор, компилятор просто игнорирует мой fgets
(оператор) и игнорирует мое условие while второй раз. Проблема заключается в строке 81-87 (позволяет пользователю вводить те символы, которые они хотят удалить) и строку 98 (оператор ввода while while). Я снова не профессионал, просто знаю некоторые основы. Извините за неправильное форматирование. не знаю, StackOverflow, что хорошоМои вводные заявления игнорируются в моей программе
#import <Foundation/Foundation.h>
#define max 100
//characters is the character that the function is going to check for
NSCharacterSet *isChar(NSString * characters)
{
NSCharacterSet * theChar=[NSCharacterSet characterSetWithCharactersInString:characters];
return theChar;
}
NSString *removeChar(NSString * myInput , NSString * characters)
{
NSString * name;
name=[NSMutableString stringWithString:myInput];
name = [[name componentsSeparatedByCharactersInSet: isChar(characters)] componentsJoinedByString: @""];
return name;
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
char myString[max];
char tempWord[max];
NSInteger length =0;
NSInteger otherlength=0;
NSString * NewString;
NSString * characters;
NSString * myInput;
int k = 0;
char l=('y');
NSLog(@"Enter a String");
fgets(myString, max, stdin);
length=strlen(myString);
myString [length - 1] = 0;
myInput= [[NSString alloc] initWithUTF8String:myString];
while (l=='y')
{
NSLog(@"What would you like to do?");
NSLog(@"1:Remove Vowels");
NSLog(@"2:Remove Punctuation");
NSLog(@"3:Remove Constanants");
NSLog(@"4:Remove Digits");
NSLog(@"5:Remove whatever you want");
scanf("%d",&k);
if (k==1)
{
[email protected]"aAeEiIoOuU";
}
if (k==2)
{
[email protected]"[email protected]#$%^&*()+_-|}]{[';:/?.>,<";
}
if(k==3)
{
[email protected]"qQwWrRtTyYpPsSdDfFgGhHjJlLzZxXcCvVbBnNmM";
}
if (k==4)
{
characters= @"1234567890";
}
if (k==5)
{//My problem starts here
NSLog(@"Enter a String");
fgets(tempWord, max, stdin);
otherlength=strlen(tempWord);
tempWord [length - 1] = 0;
characters= [[NSString alloc] initWithUTF8String:tempWord];
}
NSLog(@"Your orignal string is: %@ ", myInput);
NewString=removeChar(myInput,characters) ;
NSLog(@"Your new string is: %@", NewString);
NSLog(@"Do you want to continue?");
//The scanf works the first time but when it goes thru the loop the second time it
//it gets ignored
scanf("%c",&l);
}
NSLog(@"Take Care :)");
}
return 0;
}
ПОЖАЛУЙСТА, ПОМОГИТЕ !!!!!! – PopperJuan