#include <cassert> #include <cstdio> #include <iostream> #include <string> using namespace std; int getline(char* str){ assert(str); int count=0; while (*str!='\0') { count++; str++; } return count; } int main() { char str[100] = { 0 }; //因为scanf取一行字符时碰到空格,制表符,\r,\n就结束了。 //所以用%[^\n],这个格式符的意思是读\n之外的所有字符,也就是说读到/n为止! scanf("%[^\n]",str); int length=getline(str); printf("%d",length); return 0; }
#include <cstring> #include <stdio.h> #include <string.h> int main() { char name[100]=""; scanf("%[^\n]", &name); printf("%d", int (strlen(name))); return 0; }
#include <stdio.h> #include <string.h> int my_strlen(char *arr, int sz) { // char *p = arr; int cnt = 0; int count = 0; while (*arr != '\0') { arr++; cnt++; } // for (int i = 0; i < sz; i++) { // if (arr[i] == ' ') { // count++; // } // } return cnt; } int main(void) { char arr[20] = {0}; scanf("%[^\n]",arr); int sz = sizeof(arr) / sizeof(arr[0]); int ret = my_strlen(arr, sz); printf("%d", ret); return 0; }