c语言判断char数组的最后一个有效位
时间: 2023-08-09 10:09:13 浏览: 139
可以通过循环遍历 char 数组,找到最后一个非空字符的下标,可以使用 strlen() 函数获取字符串长度,也可以用循环实现,如下所示:
```c
int findLastValidIndex(char arr[]) {
int i;
for (i = 0; arr[i] != '\0'; i++) {
// do nothing
}
return i - 1;
}
```
上述代码中,循环遍历数组 arr,直到找到最后一个非空字符,然后返回其下标。注意,由于最后一个有效位下标是从零开始计算的,因此需要将返回值减一。
相关问题
C语言如何判断一个char数组有值
在C语言中,可以使用strlen函数来判断一个char数组是否有值,该函数可以返回指定字符串的长度,如果长度为0,则说明数组中没有值。例如:
```
char str[] = "hello world";
if(strlen(str) == 0)
{
printf("数组为空");
}
else
{
printf("数组非空");
}
```
另外,也可以通过判断数组的第一个元素是否为'\0'来判断数组是否为空。例如:
```
char str[] = "";
if(str[0] == '\0')
{
printf("数组为空");
}
else
{
printf("数组非空");
}
```
c语言将char数组插入vector<char>里,相同的内容不插入
可以使用循环遍历char数组,然后逐个判断是否已经存在于vector中,如果不存在则将其插入。可以参考以下代码:
```c++
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
int main() {
char arr[] = "hello world";
vector<char> vec;
for (int i = 0; i < strlen(arr); i++) {
bool exist = false;
for (int j = 0; j < vec.size(); j++) {
if (arr[i] == vec[j]) {
exist = true;
break;
}
}
if (!exist) {
vec.push_back(arr[i]);
}
}
for (int i = 0; i < vec.size(); i++) {
cout << vec[i];
}
cout << endl;
return 0;
}
```
输出结果为:
```
helo wrd
```
其中,`exist`变量表示当前字符是否已经存在于vector中,如果存在则将其标记为`true`,否则标记为`false`。在循环遍历完当前字符之后,如果`exist`为`false`,则将其插入到vector中。最后,使用循环遍历vector,将所有字符输出。