Menu 切换大小写菜单和nsstring大写

Menu 切换大小写菜单和nsstring大写,menu,nsstring,switch-statement,uppercase,Menu,Nsstring,Switch Statement,Uppercase,基本上这是一个开关盒菜单程序。我把enterastring函数放在菜单部分之前,以保持它的有序性。我目前的主要问题是案例4。我要做的是创建一个函数,将整个字符串转换为大写。但我似乎找不到将其应用于输入字符串的方法。它只在我定义一个预先确定的字符串时起作用 const int CSTR_MAX = 33; void readCString(char cs[]) { printf("Enter a character string up to %i characters: ",

基本上这是一个开关盒菜单程序。我把enterastring函数放在菜单部分之前,以保持它的有序性。我目前的主要问题是案例4。我要做的是创建一个函数,将整个字符串转换为大写。但我似乎找不到将其应用于输入字符串的方法。它只在我定义一个预先确定的字符串时起作用

const int CSTR_MAX = 33;        

void readCString(char cs[])
{
printf("Enter a character string up to %i characters:  ", CSTR_MAX-1);
scanf("%s", cs);
}


int main(int argc, const char * argv[])
{
@autoreleasepool {

    char cstr[CSTR_MAX];
    int choices;
    BOOL done=FALSE;         
    NSString *obj;
    NSString *uppercase = (Imnotsurewhatneedstogohere);
    NSString *lowercase;

    readCString(cstr);

    do {
        //Print the menu and prompt the use for the selection
        printf("\nMenu Choices\n");
        printf("------------\n");
        printf("1) Enter a new string\n");
        printf("4) Change all letters to Upper Case\n");
        printf("5) Change all letters to lower case\n");
        printf("8) Quit");
        printf("\nEnter your choices: ");
        scanf("%i", &choices);


        switch(choices)
        {
            case 1:
                //Enter a new String
                readCString(cstr);

                break;

            case 4:
                //Change all letters to Upper Case
                obj = [uppercase uppercaseString];
                NSLog(@"Uppercase conversion: %s", [uppercase UTF8String]);
                break;

            case 5:
                //Change all letters to lower case
                obj = [lowercase lowercaseString];
                NSLog (@"Lowercase conversion: %@", obj);
                break;



            case 8:
                //Quit
                break;
            default:  printf("You entered an invalid choice\n");
                done = TRUE;

        }

    } while (!done);

}
return 0;
}

我认为您遇到此问题的原因在于您正在登录[uppercase UTF8String],而您从未将其设置为新的大写值。你应该使用NSLog@Uppercase转换:%s,[obj UTF8String];因为obj设置为大写转换,或者重命名变量

所以案例4应该是这样的:

case 4:
                //Change all letters to Upper Case
                obj = [uppercase uppercaseString];
                NSLog(@"Uppercase conversion: %s", [obj UTF8String]);
                break;

你能把它分解成相关的代码并清楚地说明什么是不起作用的吗;whilecstr[计数器]!=“”{ifcstr[counter]>96 cstr[counter]=cstr[counter]-32;counter++;}printf%s\n,cstr;好的,我正在尝试将大写值设置为输入的字符串。这样,当输入字符串并选择该选项时,整个字符串都将大写。但我不确定实现这一目标的价值是什么。啊,这很有帮助。你认为我应该把NSString*uppercase=设置成什么吗?这完全取决于你。如果您愿意,您可以将obj替换为uppercase@shockwav3如果我的回答对你有帮助,请接受:谢谢,我会的,我只是想弄清楚最后一部分。我的问题更多的是NSString*大写=部分。通常在=之后有一个用@example string定义的字符串,这将改变它的大小写。所以它将是示例字符串。但我希望它等于输入的文本,这样每次我键入的任何文本都可以用不同的选项修改。