我试图计算总字符数,不包括空格,(我相信)是一个指向字符串数组的指针,称为myArray.
我正在努力找出问题所在.任何帮助将非常感激!
char *myArray[1000] = {"Oh! ", "Hello ", "world."};
int count = 0, x;
for (x = 1; x <= 1000; ++x) {
count += strlen(myArray[x]);
}
printf(count);
Run Code Online (Sandbox Code Playgroud)
期望的输出:
14
Run Code Online (Sandbox Code Playgroud)
Yuu可以使用标准函数ctype.h来识别字符类.例如,使用issspace()您可以查找字符是否为空格,如果是,则可以忽略它.
您正在循环索引从1到1000. C中的索引从0开始并上升到N-1.此外,你只包含3个指针; rest只是NULL(隐式零初始化).
另一个问题是您在count没有格式说明符的情况下进行打印.count存在int,你需要使用%d格式说明符.但是,您可以使用size_t类型字符串函数返回和可以容纳最大对象的类型.
#include <stdio.h>
#include <ctype.h>
int main(void)
{
char *myArray[] = {"Oh! ", "Hello ", "world."};
size_t count = 0, x, y;
for (x = 0; x < sizeof(myArray)/sizeof(myArray[0]); x++) {
for (y = 0; myArray[x][y]; y++) {
count += (isspace((unsigned char)myArray[x][y]) == 0);
}
}
printf("Total chars: %zu\n", count);
}
Run Code Online (Sandbox Code Playgroud)