迭代字符串的最佳方法 [英] best way to iterate through string
本文介绍了迭代字符串的最佳方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是C的新手,我想迭代用户输入的char数组,并根据循环当前所在的字母打印不同的预定义变量。
现在我有:
printf( 请输入您的姓名:);
scanf( %20 [0-9a-zA-Z],nameVal) ;
printf( \ n);
for (i = 0 ; nameVal [i]!= ' \ 0'; i ++){
我的if语句会是什么样子?
我基本上想说如果nameVal中的当前字母是a,打印字符A
提前谢谢。
解决方案
好吧,你可以试试:
for (i = 0 ; nameVal [i]!= ' \ 0'; i ++)
{
if (nameVal [i ] == ' a')printf( A);
if (nameVal [i] == ' b')printf( B);
...
}或者更好:
for (i = 0 ; nameVal [i]!= ' \0'; i ++)
{
switch (nameVal [i])
{
case ' a':
printf( A);
break ;
case ' b' :
printf( B);
break ;
...
}
}
但是......这可能会更好:
< pre lang =cs> for (i = 0 ; nameVal [i]!= ' \0'; i ++)
{
if ((nameVal [i] > = ' a')&&(nameVal [i] < = ' z'))
printf( %c,nameVal [i] +(' A' - ' a'));
}
I am new to C, and I want to iterate through a char array inputted by the user, and print a different predefined variable depending on which letter the loop is currently on.
Right now I have:
printf("Please enter your name: ");
scanf("%20[0-9a-zA-Z ]", nameVal);
printf("\n");
for (i = 0; nameVal[i] != '\0'; i++) {
What would my if statement look like?
I basically want to say "if the current letter in nameVal is "a", print char A"
Thanks in advance.
解决方案
Well, you could try:
for (i = 0; nameVal[i] != '\0'; i++) { if (nameVal[i] == 'a') printf("A"); if (nameVal[i] == 'b') printf("B"); ... }Or better:
for (i = 0; nameVal[i] != '\0'; i++) { switch(nameVal[i]) { case 'a': printf("A"); break; case 'b': printf("B"); break; ... } }
But...this may be better:
for (i = 0; nameVal[i] != '\0'; i++) { if ((nameVal[i] >= 'a') && (nameVal[i] <= 'z')) printf("%c", nameVal[i] + ('A' - 'a')); }
这篇关于迭代字符串的最佳方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文