【发布时间】:2015-03-17 11:59:56
【问题描述】:
我知道 string.h 有 isalpha(_) 函数,但我只是想知道是否有一个函数可以让我们知道字符串中的特定字符是什么字母。我想用另一个特定的字符来改变它,比如所有 A 都将变为“#--”,所有 K 将变为“--#”,所有其他字母都有其自身的差异(这也可能吗?制作一个子字符串?在字符串中?还是我做错了..)
char string[100];
int i;
char A*[]={"#--","--#"};
gets(string);
for(i=0, i<100, i++) {
if(isalpha(string[i])) {
string[i]=A[1];
}
}
但我不知道一个函数可以告诉我那是什么字母..我知道它是一个字母..我知道它是什么字母..但是计算机/编译器不知道它是什么字母,它只要知道它是否是一封信..
我们也可以使用strcmp(_)吗?作为备选?就像我们再制作一个 char 一样,我们只是把整个字母按顺序排列?
char alpha[26]={'a','b','c','d','e','f','g','h','i','j','k','l'*you get the point* };
char string[100];
int i;
char A*[]={"#--","--#"};
gets(string);
for(i=0, i<100, i++) {
if(strcmp(alpha,string[i])==0) {
string[i]=A[1];
}
}
或者我应该使用 ASCII 表吗?因为我们已经测试过了
printf("%d , %d \n", 'A', 'a');
printf("%c, %c \n", 65, 97);
这个输出:
65 , 97
A , a
这里最好的做法是什么?
【问题讨论】:
-
aer 你在寻找一个字符在字符串中的位置吗?如果是这样,请使用tutorialspoint.com/ansi_c/c_strchr.htm
-
如果您要在 ASCII 表中查找字符的值(即 A = 65,a = 97),请使用 ord() 函数
-
@Mawg:
ord()不是标准库 C 函数。你能告诉它来自哪里以及如何使用它吗?考虑到 C 的原生“字符串是字符数组”实现,为什么还需要一个函数? -
谢谢.. strchr 功能.. 我确实说过我想识别用户输入的字母.. 哦,好吧
-
哎呀,Ord() 是 Pascal ;-( 实际上你可以直接施法。见 stackoverflow.com/questions/845710/…