我想得到Ala
。我得到A
。如何解决这些问题?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void zad(char tab[]) {
int i = 0;
int size = strlen(tab);
while(tab[i] != " ") {
printf("%c", tab[i]);
i++;
}
}
int main() {
char word[20] = "Ala ma kota";
zad(word);
return 0;
}
答案 0 :(得分:4)
char数组和char类型在c中不同,第一个使用"
作为分隔符,第二个使用'
所以尝试一下:
while(tab[i] != ' ') {
哪个适合您的示例。
但是,要使代码更普遍地适用于不同的子字符串(空格字符除外)以及其中没有空格的字符串,也需要使用大小,如下所示:
while(i < size && tab[i] != ' ') {
以确保您不会尝试读取字符串所驻留的内存之外的内容。
答案 1 :(得分:3)
尝试以下操作:while(tab[i] != ' ' && tab[i])
使用' '
代替" "